我使用netty的事件循环来submit我程序中的可调用和可运行对象,有时它们永远不会被执行。当我进行线程转储时,它看起来像这样-
io.netty.channel.kqueue.Native.keventWait(int, long, int, long, int, int, int)
io.netty.channel.kqueue.Native.keventWait(int, io.netty.channel.kqueue.KQueueEventArray, io.netty.channel.kqueue.KQueueEventArray, int, int) (line: 113)
io.netty.channel.kqueue.KQueueEventLoop.kqueueWait(int, int) (line: 177)
io.netty.channel.kqueue.KQueueEventLoop.kqueueWait(boolean) (line: 169)
io.netty.channel.kqueue.KQueueEventLoop.run() (line: 238)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run() (line: 986)
io.netty.util.internal.ThreadExecutorMap$2.run() (line: 74)
io.netty.util.concurrent.FastThreadLocalRunnable.run() (line: 30)
java.lang.Thread.run() (line: 834)基本上,netty永远都在等待事件,没有任何超时。处理这种情况的正确方法是什么?
发布于 2021-08-16 09:42:14
这不应该发生,如果是这样的话,这是一个错误。请升级到最新的netty版本,如果仍然发生这种情况,请在我们的问题跟踪器上打开一个bug报告,其中包含所有需要的信息。
https://stackoverflow.com/questions/68711113
复制相似问题