【发布时间】:2010-11-01 17:40:21
【问题描述】:
有没有办法使用 Java 本地线程找出您的线程在哪个处理器(在单个系统或多个系统上)运行?如果没有,是否有任何图书馆可以提供帮助?
【问题讨论】:
-
感谢大家的回答。我知道我应该更关心的是线程的 CPU 使用率。这只是我出于好奇而问的一个问题:)
标签: java multithreading processor
有没有办法使用 Java 本地线程找出您的线程在哪个处理器(在单个系统或多个系统上)运行?如果没有,是否有任何图书馆可以提供帮助?
【问题讨论】:
标签: java multithreading processor
JVM 的线程调度程序是特定于 JVM 的,因此没有“通用”解决方案。据我所知,没有现成可用的东西,但可能使用:
你可能会有一些运气:
thread-start 探针,它的args[3] 具有“本机/OS 线程ID。这是主机操作系统分配的ID”【讨论】:
我从未听说过这样的调用,而且我非常怀疑是否存在,因为它并不是真正需要的,并且需要额外的特定于平台的代码。
【讨论】:
操作系统会在不同的时间在不同的处理器上调度线程。因此,即使您获得每个线程在任何给定时刻运行位置的快照,它也可能在几毫秒内过期。
您要解决的问题是什么?也许可以做你想做的事而不必知道这一点。
【讨论】: