【发布时间】:2012-08-31 07:31:09
【问题描述】:
我们有一台带有 4 个 Intel Xeon E7 4850 处理器(NUMA 节点)的高端服务器机器,每个处理器有 10 个内核和 2 个线程。所以实际上我们有 80 个核心的机器。 (windows任务管理器显示80核) 现在我的问题是当我执行 Runtime.getRuntime().availableProcessors() 它返回 40,所以我的应用程序只产生 40 个线程。 为什么会这样?
【问题讨论】:
-
最好有一个选项来覆盖您的应用程序通过配置执行的自动线程分配,从而回避 JVM 能够正确解决的问题。
-
我无法覆盖,因为在具有 8 个核心的机器上它返回 8 个,因此产生了 8 个线程。我事先不知道我的应用程序将在哪里运行。它应该像我在查询中提到的那样在普通服务器机器和高端机器上运行
标签: multithreading jvm cpu core