Java 如何确定硬件线程的数量
什么是硬件线程。它是否总是将可用的处理器内核数量增加一倍?如何确定Intel Core2 Duo处理器中的硬件线程数?可以通过Java代码来确定吗 什么是硬件线程 你告诉我们。这不是一个固定的术语 它是否总是将可用的处理器内核数量增加一倍 啊,现在你似乎在谈论CPU内核中的部分冗余被用来“伪造”一个额外的内核 如何确定 Intel Core2 Duo中的硬件线程 处理器?能否确定 通过Java代码 您可以尝试在系统属性中查找一些内容,但它不是标准的(即,取决于JVM和操作系统)Java 如何确定硬件线程的数量,java,concurrency,parallel-processing,Java,Concurrency,Parallel Processing,什么是硬件线程。它是否总是将可用的处理器内核数量增加一倍?如何确定Intel Core2 Duo处理器中的硬件线程数?可以通过Java代码来确定吗 什么是硬件线程 你告诉我们。这不是一个固定的术语 它是否总是将可用的处理器内核数量增加一倍 啊,现在你似乎在谈论CPU内核中的部分冗余被用来“伪造”一个额外的内核 如何确定 Intel Core2 Duo中的硬件线程 处理器?能否确定 通过Java代码 您可以尝试在系统属性中查找一些内容,但它不是标准的(即,取决于JVM和操作系统) 就我个人而言,我
就我个人而言,我只会使用一个合理的默认值(4或8个线程-多几个线程比不使用可用的内核要好),并使其可配置。我想你指的是CPU的数量。您可以通过以下方式获得: int N_cpu=Runtime.getRuntime().availableProcessors()
如果您计划实现线程池,则可以使用此值确定线程池中应该存在多少线程。要了解更多关于线程池大小的信息,请参阅Java中的并发部分,第8.2节。硬件线程的数量肯定不是内核数量的两倍——AMD处理器没有任何类型的超线程(),并且可以在BIOS中关闭超线程(就像以前的nehalem处理器一样,实际上它并没有给你带来太多的好处)。也没有理由说每个内核只需要两个硬件线程——Power7系统已经做到了
没有独立于操作系统或硬件的方法来进行这些检查。我所知道的唯一一个可以相当方便地查询这些信息的库是库。它是一个C库,所以从Java调用应该非常简单。硬件线程是一个内核级概念,取决于您的操作系统。我很想知道iJeeves为什么想知道。他可能正在思考的问题远远超出了核心CPU的问题…?在许多同时发表的相关论文中都发现了这一点。