【发布时间】:2010-03-30 01:30:50
【问题描述】:
Java 如何决定分配线程或进程的内核?有什么办法可以控制吗?防止两个大线程在同一个内核上执行?
基本上,我要问的是有关多线程在 Java 中如何工作或如何在 Java 中控制它的更多信息。
【问题讨论】:
标签: java multithreading
Java 如何决定分配线程或进程的内核?有什么办法可以控制吗?防止两个大线程在同一个内核上执行?
基本上,我要问的是有关多线程在 Java 中如何工作或如何在 Java 中控制它的更多信息。
【问题讨论】:
标签: java multithreading
您不能为特定线程设置处理器关联。但是,如果您将程序分成两个进程,您应该能够将这些进程分配给操作系统级别的特定处理器。
http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html
【讨论】:
这是Multithreading in Java的教程。
至于线程调度 - 操作系统应该适当地处理线程调度。您通常无需担心这一点。
Java Thread class 目前不提供手动设置线程亲和性的方法,尽管这在过去已经提出。
【讨论】:
Java 如何决定使用哪个内核 分配线程还是进程?
它没有。操作系统可以。
有什么办法可以控制吗?到 防止两个大线程 在同一个内核上执行?
不在 Java 中。
基本上我要求的是 有关如何的更多信息 多线程在 Java 中工作,或者如何 在 Java 中控制它。
没有。这一切都由操作系统完成。
基本上你问错了问题。
【讨论】:
这实际上取决于 JVM 上的实现,但一般而言,Java 实现依赖于底层操作系统的线程功能。据我所知,没有公共和标准的扩展来设置亲和力。但是,可能有提供钩子的实验性 JVM。
此外,干扰 JVM 抽象以直接干扰底层平台在一定程度上(和恕我直言)违背了 Java 的精神。
【讨论】: