是否需要使用多线程算法来使用多核处理器?

Emi*_*mil 9 java multithreading multicore

我只是想知道如果必须使用多核处理器,我们是否真的需要算法是多线程的,或者jvm是否会使用多核甚至 - 虽然我们的算法是顺序的?

更新:

相关问题:

Jon*_*eet 18

我不相信任何当前的生产JVM实现执行自动多线程.他们可能会使用其他内核进行垃圾收集和其他一些内务处理,但如果您的代码按顺序表示,则很难自动并行化并保持精确的语义.

可能是一些实验/研究的JVM其中设法并行的代码的JIT可以当场为尴尬的并行区域,但我还没有听说过这样的生产系统任何东西.即使JIT 确实发现了这种情况,它可能不如首先设计并行代码有效.(顺序编写代码,您可能很容易最终做出设计决策,这会无意中妨碍自动并行性.)

  • 即使你的Java程序令人尴尬地顺序,拥有一个额外的核心将允许你的主机更有效地完成其他工作(文件系统,监控,网络处理). (2认同)

Bab*_*fas 5

您的实现需要是多线程的,以便利用您可以使用的多个内核。

您的系统作为一个整体可以为每个正在运行的应用程序或服务使用一个内核。但是,除非以其他方式实现,否则每个正在运行的应用程序都将在单个线程/核心上工作。