Java如何处理多线程?

4

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

基本上我想要更多关于Java中多线程如何工作,或者如何在Java中控制它的信息。

4个回答

4

@Tim Bender:+1... 然后开始(无知的)评论解释在3..2..1中设置处理器亲和性没有任何作用 :) - SyntaxT3rr0r

2
这里是关于Java中多线程的教程。
至于线程调度 - 操作系统应该适当地处理线程调度。通常您不需要担心这个问题。 Java Thread类目前没有提供手动设置线程亲和力的方法,尽管过去曾经提出过这个想法。

2
Java如何决定分配线程或进程到哪个核心?
它不会决定,操作系统会做出决定。
有办法控制吗?以防止两个大型线程在同一个核心上执行?
在Java内部没有这样的方法。
基本上我所问的是关于Java中多线程工作原理的更多信息,或者如何在Java内部进行控制。
没有这样的方法,所有这些都由操作系统完成。
基本上,您正在问错误的问题。

这个问题在绿色线程方面更有意义。 - Thorbjørn Ravn Andersen

0

这实际上取决于JVM的实现方式,但通常情况下,Java实现依赖于底层操作系统的线程功能。据我所知,没有公共和标准扩展来设置亲和性。然而,可能有一些实验性的JVM提供了钩子。

此外,直接干预JVM抽象以直接干涉底层平台,在某种程度上(在我看来)违背了Java的精神。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接