我只是想知道我们是否真的需要算法是多线程的,如果它必须利用多核处理器,或者jvm是否要利用多核处理器,即使我们的算法是顺序的?
我不相信任何当前的生产JVM实现都可以执行自动多线程。他们可能会使用其他核心进行垃圾回收和其他内部管理,但是如果您的代码是顺序表达的,则很难自动并行化它并仍然保留精确的语义。
有 可能 是一些实验/研究的JVM其中设法并行的代码的JIT可以当场为尴尬的并行区域,但我还没有听说过这样的生产系统任何东西。即使JIT 确实 发现了这种情况,它也可能比最初为并行 设计 代码的效率低。(顺序编写代码,您很容易最终做出设计决定,从而无意间妨碍了自动并行性。)