作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个需要运行多线程的应用程序,但我希望它只使用计算机的一个内核,就好像我的计算机有单核一样(我知道多线程应用程序在单核计算机上的行为),虽然不是。
此应用程序将部署在客户计算机(Windows XP 和 7)上,我不希望我的应用程序使用多个内核。这可以做到吗?它取决于编程语言吗?还是所有的线程管理都留给操作系统?
提前致谢。
最佳答案
您可以将整个程序的关联设置为仅绑定(bind)到一个 cpu。
在 unix 中,您可以使用 taskset
但对于 Windows,我只知道如何从可能不适合您的任务管理器中执行此操作。
我有一个图书馆,Java Thread Affinity这将允许您以编程方式设置亲和力。
AffinitySupport.setAffinity(1); // only run on cpu 0.
这还将限制从该点启动的任何线程到相同的亲和性。
您可以添加一个带有 main() 的类,该类设置亲和力并调用您的普通 main() 允许您在不更改任何现有代码的情况下添加它。
关于java - 是否可以在多核计算机的单核上运行多线程应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23132375/
我是一名优秀的程序员,十分优秀!