为什么这是我尝试在 4 处停止生成无尽线程的尝试?

我在 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();

    }

}

现在什么也没有打印。


我在这里错过了什么?


犯罪嫌疑人X
浏览 119回答 1
1回答

慕码人2483693

一旦您的线程到达执行结束(在您的情况下,threadTest()方法结束),它就不再是活动线程。如果Thread.sleep在方法中添加过长,您将看到此活动线程数进一步增加。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java