java - 关于 ThreadGroup#activeCount() 的困惑

标签 java multithreading threadgroup

ThreadGroup#activeCount() 的文档说:返回此线程组及其子组中 Activity 线程数量的估计值。
该计数是否包括处于 sleep 、 wait 和 join 模式的线程,还是仅包括那些正在执行 run 方法的线程?

谢谢。

最佳答案

您可以轻松尝试此操作:

Thread t1 = new Thread(new Runnable() {

    @Override
    public void run() {
        Scanner sc = new Scanner(System.in);
        sc.nextInt();
    }
});
Thread t2 = new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
});
t1.start();   // this will be RUNNABLE
t2.start();   // this will be TIMED_WAITING
System.out.println(Thread.currentThread().getThreadGroup().activeCount());

打印 3. 注释行

t1.start();
t2.start();

导致打印1。

关于java - 关于 ThreadGroup#activeCount() 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411073/

相关文章:

java - 如何使用 Play Framework 获取特定 Web 套接字端点上的 Actor 列表?

java - JLayeredPane 和绘画

java - 找不到 javac 编译器

java - Java,如何在单击按钮时在两个图像之间交替,然后在再次单击时停止?

ios - Metal 计算着色器线程组和线程执行宽度

multithreading - GPU 上的线程和线程组

java - 为什么使用 java.lang.ThreadGroup 不安全?

Java多线程应用程序问题

iphone - -[NSOperationQueue操作]返回一个不应该的空数组?

c++ - 有没有办法在每个创建的线程上调用一些函数?