Java 一个线程使用多个内核(quadcore上的CPU使用率超过25%)

Java 一个线程使用多个内核(quadcore上的CPU使用率超过25%),java,multithreading,cpu,taskmanager,Java,Multithreading,Cpu,Taskmanager,我刚刚开始用Java编程,我对计算机如何分配CPU负载感兴趣。我已经做了一个非常基本的程序,它可以创建一个窗口,并使框和线移动。在测试时,我查看了任务管理器;任务经理说我使用了约1%的CPU。然而,当我运行我的程序时,CPU的使用率上升到了36%(我只启动了程序,没有别的)。有人能告诉我这里发生了什么事吗 您认为您的程序只有一个线程,但实际上每个Java程序都有很多线程。GUI应用程序有事件调度线程,垃圾收集有自己的线程等。您可以使用探查器(如JDK中的VisualVM)查看应用程序中的所有线程

我刚刚开始用Java编程,我对计算机如何分配CPU负载感兴趣。我已经做了一个非常基本的程序,它可以创建一个窗口,并使框和线移动。在测试时,我查看了任务管理器;任务经理说我使用了约1%的CPU。然而,当我运行我的程序时,CPU的使用率上升到了36%(我只启动了程序,没有别的)。有人能告诉我这里发生了什么事吗


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


或者您可以通过编程方式查看它们,请参见“…对计算机如何分配CPU负载感兴趣。”计算机没有。操作系统可以。您感兴趣的是所谓的“调度”,操作系统的调度算法决定运行哪个线程,在哪个处理器上运行。