为什么 dequeue() 花费如此多的处理器时间?

Visual VM 显示 FifoMessageDispatchChannel.dequeue() 花费了大量时间。Tomcat 进程正在使用大约 100% 的处理器核心。

http://img1.mukewang.com/64b7b07b0001b2dd19200977.jpg


MM们
浏览 116回答 2
2回答

红颜莎娜

dequeue() 并不像其他人所说的那样占用太多处理器时间。对另一个问题的回答解释了“自我时间”包括花在处理以外的事情上的时间,例如等待。Self 和 Total Time (CPU) 包括使用处理器的方法中的时间,对于 dequeue() 来说它们为 0。要查找使用处理器最多的方法,请按自用时间 (CPU) 排序,如Bedla 所示。

慕村225694

最可能的原因是您正在调用消费者接收方法并等待很短的时间,但如果没有更多信息就无法判断。调度通道只是检查队列中是否有数据,如果没有数据存在,则会在给定的超时时间内阻塞,等待信号唤醒并再次检查或超时并返回。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java