多个 CPU 中的线程行为

Thread behavior in multiple CPUs

在 java 程序中,线程调度程序会在线程之间快速切换,因此我们会感觉到许多任务同时发生,而实际上并非如此。

但是,如果我们的计算机有多个中央处理器 (CPU),这是否意味着线程实际上是并行处理的,而无需进行上述切换?

反对可能的重复建议的理由:我问的是 java 程序是否能够利用多核,而不是那个问题的 "how does JVM make use of multiple cores?"

是的,在具有多个物理处理器的机器上使用 Java 中的多个线程将导致实际的并行处理,除非您明确告诉 O/S 强制应用程序的所有线程 运行 在同一个物理处理器上。