一个线程使用多个内核(在四核上使用率超过 25% CPU)

multiple cores being used one a thread (>25% CPU usage on quadcore)

我刚开始在 Java 编程,我对计算机如何分配它们的 CPU 负载很感兴趣。我做了一个非常基本的程序,它创建了一个 window 并移动了一个方框和一条线。在测试时,我查看了任务管理器;任务管理器说我使用了 ~1% 的 CPUs。然而,当我 运行 我的程序时, CPU 使用率上升到 ~36% (我只启动了程序,没有别的)。谁能告诉我这是怎么回事,好吗?

你认为你的程序只有一个线程,但实际上每个Java程序都有很多线程。 GUI 应用程序有事件调度线程,垃圾收集有自己的线程等。您可以使用分析器(如 JDK 中的 VisualVM)查看应用程序中的所有线程。

或者您可以通过编程方式查看它们,请参阅 Get a List of all Threads currently running in Java