首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么占用的核心数量高于线程池大小?

为什么占用的核心数量高于线程池大小?
EN

Stack Overflow用户
提问于 2014-05-22 05:01:09
回答 1查看 95关注 0票数 4

Java程序占用的内核数量是否高于线程池的大小?我正在指定线程池大小为4,但我看到我的java代码在一段时间后占据了6或7个核心(即顶部显示600)。我在这台机器上有8个核心。我是做错了什么,还是java决定在执行多线程时自动使用其他未使用的核心?如果是,有没有办法强制在多线程过程中使用内核的数量?

我使用的代码如下所示:

代码语言:javascript
复制
ExecutorService executor = Executors.newFixedThreadPool(4);
for (int i = 0; i < N; i++) {
   executor.execute(do something);                
}
executor.shutdown();
while (!executor.isTerminated()) {}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 05:18:58

JVM使用了几个系统线程,比如终结器线程。运行j控制台,连接到您正在运行的应用程序,转到threads选项卡,您将看到所有正在运行的线程。或者将这些代码添加到应用程序中。

代码语言:javascript
复制
    for(Thread t : Thread.getAllStackTraces().keySet()) {
        System.out.println(t);
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23798162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档