【问题标题】:How all the processors usage become 100% in multithreading多线程中所有处理器的使用率如何达到 100%
【发布时间】:2014-12-05 06:10:11
【问题描述】:

我的系统是 7 核 CPU 机器。我刚刚尝试运行以下程序

 for(int i=0;i<10; i++)
 {
        new Thread(new Runnable()
        {   
            @Override
            public void run()
            {
                while (true)
                {

                }   
            }
        }).start();;
    }

现在我的 CPU 使用率为 100%(7 个核心为 100%)。这里有 10 个线程在单个进程 javaw.exe 中。它是如何分布在我所有的 CPU 内核上的?

单个进程是否可以在多个内核中运行,或者 java 实现是否负责跨不同处理器提供线程?

【问题讨论】:

  • 7核CPU?没听说过。
  • 旁注。 Intel i7 处理器没有 7 核
  • @arunmoezhi 哦。给我的新信息.. 谢谢。

标签: java multithreading process cpu cpu-usage


【解决方案1】:

是的,同一进程的多个线程可以跨多个 CPU 拆分。对于许多应用程序来说,这就是使用多线程的全部意义所在。

大多数当前的 JVM 实现为此使用本机 OS 线程(一个 Java 线程 - 一个 OS 线程),因此这一切都由操作系统完成。替代方案是“green threads”,JVM 将手动安排执行。对于没有“真正”线程的架构或操作系统而言,这似乎已成为过去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    相关资源
    最近更新 更多