多核和java

Oun*_*ney 5 java multithreading

我刚刚读到“服务器如何处理多个请求”,最终得到了 java 多线程和多核 cpu。

在计算机是单核的时候,如果 java 同时有 2 个线程,那么 jvm 调度程序将负责为每个线程分配时间。因此,两个线程永远不会并行运行,而是利用理想时间(例如,如果线程在某些资源上被阻塞)。

但这是 java7 中多核和 fork/join 框架的情况吗?我的意思是我听说通过多核我们实际上可以实现并行性。所以,如果我有两个线程运行,两个核心cpu,并且每个线程都有一个单独的核心(尽管不能保证)那么它们实际上会是并行的,因为jvm调度程序仍然会导致时间交错吗?

如果这个问题很愚蠢,我很抱歉,但我真的不确定这个问题。请帮我理解!!

谢谢!乌尼

Gho*_*ica 1

问题在于,仍然很难了解实际有多少线程、核心……可用。

我个人的建议:java 专家时事通讯上有几篇文章对这个主题进行了非常深入的探讨。

例如这个: http: //www.javaspecialists.eu/archive/Issue135.html

或者一个非常新的,关于“可用处理器的数量”:http://www.javaspecialists.eu/archive/Issue220.html