首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法用任务管理器找出Java中运行的线程的数量?

有没有办法用任务管理器找出Java中运行的线程的数量?
EN

Stack Overflow用户
提问于 2012-08-21 19:21:41
回答 6查看 2.4K关注 0票数 7

在Java中,假设我用如下所示的循环启动了1000个线程,有没有办法使用任务管理器监控实际运行的线程数量和线程消耗的CPU资源?

代码语言:javascript
复制
for(int j=0; j<=1000; j++)
{
    MyThread mt = new MyThread ();
    mt.start ();
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-21 19:24:42

您可以使用VisualVMJConsole或任何其他监视工具

票数 2
EN

Stack Overflow用户

发布于 2012-08-21 19:28:45

如果您指的是Windows任务管理器,则可以自定义进程选项卡中显示的列:

代码语言:javascript
复制
Menu View > Select Columns > Threads

编辑

快速测试表明,创建一个额外的线程确实会将该计数器递增1-当该线程终止时,该计数器会递减。

但是它从多个线程开始,因为它可能还包括各种JVM线程(它从19个线程开始)。请注意,jconsole在单线程程序中也显示了10个线程。

如果您使用visual VM,您可以看到守护进程和非守护进程线程之间的拆分(所有JVM线程都是守护进程)。

测试代码:

代码语言:javascript
复制
public static void main(String[] args) throws InterruptedException {
    Thread.sleep(3000);
    Runnable r = new Runnable() {

        @Override
        public void run() {
            try {
                Thread.sleep(10000);
            } catch (InterruptedException ex) {}
        }
    };

    for (int i = 0; i < 5; i++) {
        new Thread(r).start();
        Thread.sleep(1000);
    }
    Thread.sleep(10000);
}
票数 2
EN

Stack Overflow用户

发布于 2012-08-21 19:25:45

在代码中,您可以使用Thread.activeCount()方法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12053738

复制
相关文章

相似问题

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