我在Java 8中有以下简单代码:

class ThreadTest {
    void threadTest() {
        new Thread(this::threadTest).start();
        System.out.println(Thread.activeCount());
    }

    public static void main(String[] args) {
        new ThreadTest().threadTest();
    }
}

我非常期待看到大量的打印品。我在控制台中看到的是:
4
4
4
4
4
4
4
4
4

我说过也许出于某种原因我都看不到别人,并修改了如下代码:
class ThreadTest {
    void threadTest() {
        new Thread(this::threadTest).start();
        if (Thread.activeCount() > 4) {
            System.out.println(Thread.activeCount());
        }
    }

    public static void main(String[] args) {
        new ThreadTest().threadTest();
    }
}

现在什么也没印出来。

我在这里想念什么?

最佳答案

一旦线程到达执行结束(在您的情况下为threadTest()方法的结尾),它就不再是 Activity 线程。

如果在方法中添加了太长的Thread.sleep,您将看到此 Activity 线程数进一步增加。

10-04 10:14