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

标签 java profiling visualvm jvisualvm tomcat8.5

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

dequeue() largest time consumer

最佳答案

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

关于java - 为什么 dequeue() 花费如此多的处理器时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57877501/

相关文章:

java - 无法从组合框中选择项目

java - 找到用死 Groovy 代码填充 PermGen 的代码

Java 内存使用量持续增长直到出现 OutOfMemory 异常

java - 如何在Java中存储配置文件?

java - 如何在堆文件中找到局部变量

java - Apache Camel + RabbitMq - Camel 定义了自己的队列,并且不会从已定义的队列中读取

java - 如何在 Java Web 服务中查找文件路径

java - 如何添加 EditText(s) 和带有按钮的复选框?

c - 分析 C : empty report

android - 将 Android 分析监视器集成到 Appium 脚本中