Java 拖下XNIO I/O线程始终占用CPU

Java 拖下XNIO I/O线程始终占用CPU,java,performance,network-programming,undertow,Java,Performance,Network Programming,Undertow,我观察到我的应用程序(基于下拖)在运行一段时间后不断消耗CPU百分比: 最后,我发现如果我挂起一个XNIO I/O线程,CPU百分比将被释放 暂停I/O线程后的堆栈帧: 挂起并恢复该线程后的CPU消耗: 知道是什么引发了这个问题吗 更新 正常I/O线程的挂起位置: 错误I/O线程的挂起位置: 更新2-更多发现 逻辑中存在死循环: WorkerThread调用选择: 线程中断: 所选键为null,它会中断循环: 它再次重复无穷循环: 然后返回到select()调用: 在Nett

我观察到我的应用程序(基于下拖)在运行一段时间后不断消耗CPU百分比:

最后,我发现如果我挂起一个XNIO I/O线程,CPU百分比将被释放

暂停I/O线程后的堆栈帧:

挂起并恢复该线程后的CPU消耗:

知道是什么引发了这个问题吗

更新

正常I/O线程的挂起位置:

错误I/O线程的挂起位置:

更新2-更多发现

逻辑中存在死循环:

  • WorkerThread调用
    选择

  • 线程中断:

  • 所选键为
    null
    ,它会中断循环:

  • 它再次重复无穷循环:

  • 然后返回到
    select()
    调用:


  • 在Netty上发现了类似的问题:您好,您能找到解决方案吗?看来我们遇到了同样的问题,我们完全陷入了困境。@GelinLuo你能解决你的问题吗?在Netty上发现了类似的问题:喂,你能找到解决办法吗?看来我们遇到了同样的问题,我们完全陷入了困境。@GelinLuo你能解决你的问题吗?