<分区>
我开发了一个多线程 java 应用程序,它使用线程来处理一批工作。我有一个主线程,可以将作品分派(dispatch)给不同的线程。一切正常。
现在我已经更改了应用程序以允许它在多个 java 进程中运行,每个进程都像以前一样进行多线程处理。例如,我以前有 8 个线程在一个 java 进程中处理 8 个作业,现在我可以有 2 个 Java 进程,每个进程仍有 4 个线程来处理总共 8 个作业。
应用程序是这样建模的:一个调度程序将获取需要完成的工作,然后将它们调度到一个线程池。线程之间没有同步或通信。
我注意到在后面的方法中有相当大的性能提升,我想知道为什么。任何人都可以对此有所了解吗?操作系统进程调度是否比 Java 线程更高效?当我真的需要提高性能时,我是否应该将其用作一般经验法则?谢谢。