java – 是否可以在单核心多核计算机上运行多线程应用程序?

参见英文答案 > Java thread affinity                                    5个
我有一个应用程序,我需要运行多线程,但我希望它只使用一个核心的计算机,就好像我的电脑有单个核心(我知道多线程应用程序在单核心的计算机上的行为),虽然不是.

该应用程序将部署在客户计算机(Windows XP和7)上,我不希望我的应用程序使用多个核心.这可以做吗它是否依赖于编程语言?还是所有的线程管理都留给操作系统?

提前致谢.

最佳答案
您可以将整个程序的亲和力设置为仅绑定一个cpu.

在unix中,您可以使用任务集,但是对于Windows,我只知道如何从任务管理器执行,这可能不适合您.

我有一个库,Java Thread Affinity这将允许你设置亲和力程序.

AffinitySupport.setAffinity(1); // only run on cpu 0.

这也将限制从那一点开始的任何线程到相同的亲和力.

您可以添加一个带有main()的类,该类设置了亲和力,并调用您的普通main(),允许您添加它,而无需更改现有的任何代码.

转载注明原文:java – 是否可以在单核心多核计算机上运行多线程应用程序? - 代码日志