Java如何处理多线程?

时间:2010-03-30 01:30:50

标签: java multithreading

Java如何决定分配线程或进程的核心?有没有办法控制它?防止两个大线程在同一个核心上执行?

基本上我要问的是有关多线程如何在Java中工作或如何在Java中控制它的更多信息。

4 个答案:

答案 0 :(得分:4)

您无法为特定线程设置处理器关联。但是,如果将程序拆分为两个进程,则应该能够将这些进程分配给操作系统级别的特定处理器。

http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html

答案 1 :(得分:2)

这是关于Multithreading in Java的教程。

对于线程调度 - 操作系统应该处理适当的线程调度。您通常不需要担心这一点。

Java Thread class目前没有提供手动设置线程关联的方法,尽管过去已经提出过这种方法。

答案 2 :(得分:2)

  

Java如何决定使用哪个核心   分配线程或进程?

没有。操作系统可以。

  

有没有办法控制它?至   防止两个大线程   在同一个核心上执行?

不在Java内。

  

基本上我要问的是   关于如何进一步的信息   多线程在Java中工作,或者如何工作   在Java中控制它。

没有。这一切都是由操作系统完成的。

基本上你问的是错误的问题。

答案 3 :(得分:0)

这实际上取决于JVM上的实现,但一般来说,Java实现依赖于底层操作系统的线程功能。据我所知,没有公共和标准扩展来设置亲和力。但是,可能存在提供钩子的实验性JVM。

此外,干扰JVM抽象以直接混淆底层平台在某种程度上(和恕我直言)违背了Java的精神。