什么是硬件线程?它是否总是等于可用处理器核心数的两倍?如何确定Intel Core2 Duo处理器中的硬件线程数量?它可以通过Java代码来确定吗?
什么是硬件线程?它是否总是等于可用处理器核心数的两倍?如何确定Intel Core2 Duo处理器中的硬件线程数量?它可以通过Java代码来确定吗?
什么是硬件线程。
你告诉我们吧。这并不是一个确定的术语。
它是否总是可用处理器内核数量的两倍?
啊,现在看起来你在谈论超线程,其中 CPU 核心内部的部分冗余被用于“伪造”额外的核心。
如何确定 Intel Core2 Duo 处理器中的硬件线程数?能否通过 Java 代码确定?
你可以尝试在系统属性中查找一些内容,但这不会是标准的(即取决于 JVM 和操作系统)。
个人建议,只需使用合理的默认值(4 或 8 个线程 - 拥有过多的线程比未使用可用内核更好),并使其可配置。
我想你是指CPU数量。您可以通过以下方式获取:
int N_CPUS = Runtime.getRuntime().availableProcessors();
使用此值,您可以确定线程池中应存在多少个线程(如果您计划实现它)。要了解有关线程池大小的更多信息,请参阅Java并发性中的第8.2节。