首页 > 解决方案 > 是否可以检查线程在 JAVA 中运行在哪个处理器上?

问题描述

我正在使用 JAVA VisualVM 来分析我的程序并获得以下关于线程执行的结果:

在此处输入图像描述

我不熟悉 JAVA 如何处理多个线程,这是我的问题:

1.绿色条是否表明线程实际上是在相应的时间间隔内运行的?如果是这样,那么同时运行的线程数怎么可能大于处理器的数量(我的笔记本电脑上是 8 个)?

2.是否可以检查线程在哪个处理器上运行?

非常感谢!

标签: javamultithreadingjvisualvm

解决方案


是否可以检查线程在哪个处理器上运行?

不确定 VisualVM,但您可以使用jstack 实用程序获取 Java 线程的操作系统线程 ID 。
然后,您可以通过操作系统提供的任何方法找出线程在哪些处理器上运行。


推荐阅读