我只是在阅读“服务器如何处理多个请求”并最终获得了 java 多线程和多核 cpu。

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

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

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

谢谢!
欧尼

最佳答案

问题是仍然很难理解有多少线程、内核……实际上是可用的。

我的个人建议:Java 专家时事通讯中有几篇文章深入探讨了这个主题。

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

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

10-07 12:12