Runtime.availableProcessors:它将返回什么?

Runtime.availableProcessors()令人高兴的是,Java 1.6中的javadoc

是不确定的。它是在看硬件配置还是看负载?是否足够聪明,可以避免被超线程所欺骗?它是否通过linux taskset命令遵守一组有限的处理器?

我可以添加自己的一个数据点:在具有12个内核和超线程的计算机上,Runtime.availableProcessors()确实返回24,这对于确定要尝试运行的线程数不是一个好数字。机器显然不是空转,因此也不能以任何有效的方式查看负载。

回答:

AFAIK,它始终为您提供可用CPU的总数,即使是那些不用于调度的CPU。我有一个图书馆使用此事实来查找保留的CPU。我阅读了/ proc /

cpuinfo和该进程的默认线程关联性,以得出可用的内容。

以上是 Runtime.availableProcessors:它将返回什么? 的全部内容, 来源链接: utcz.com/qa/403998.html

回到顶部