我只是想知道如果算法必须使用多核处理器,我们是否真的需要多线程算法,或者即使我们的算法是顺序的,jvm 是否会使用多核处理器?
更新:
相关问题:
最佳答案
我不相信任何当前的生产 JVM 实现都执行自动多线程。它们可能使用其他核心进行垃圾收集和其他一些内务管理,但如果您的代码是按顺序表示的,则很难自动并行化它并仍然保持精确的语义。
可能有一些实验性/研究型 JVM 试图并行化 JIT 可能发现的并行性令人尴尬的代码区域,但我还没有听说过用于生产系统的类似情况。即使 JIT 确实发现了这种事情,它的效率也可能不如设计您的代码以实现并行性。 (按顺序编写代码,您很容易做出无意中妨碍自动并行性的设计决策。)
关于java - 使用多核处理器是否需要多线程算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836937/