我在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 线程数进一步增加。