配置线程池的核心线程数时,我们应该使用CPU的物理核心数还是逻辑核心数?

问题描述 投票:0回答:1

java程序设置线程池参数时,会参考cpu核数。 在配置线程池的核心线程数时,我们应该使用CPU的物理核心数还是逻辑核心数呢? 另外,我还想知道docker或者vmware等容器技术显示的CPU核心数,是逻辑核心数还是物理核心数? 对于支持超线程的CPU,这两个值是不同的。

java docker cpu threadpool vmware
1个回答
0
投票

虚拟线程

好消息:在 Java 21+ 中,虚拟线程的使用意味着您不必进行核心计算。

虚拟线程是由 JVM 而不是主机操作系统管理的线程。它们比传统的“平台”线程便宜得多。您可以合理地运行一百万个虚拟线程。

如果您的任务存在一些阻塞,即它们不完全受 CPU 限制,那么虚拟线程通常是最佳选择。

© www.soinside.com 2019 - 2024. All rights reserved.