Kor*_*gay 8 java multithreading java-8
我在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();
}
}
Run Code Online (Sandbox Code Playgroud)
而且我非常期待看到非常大的数字被打印出来.我在控制台中看到的只有:
4
4
4
4
4
4
4
4
4
Run Code Online (Sandbox Code Playgroud)
我说也许我无法出于任何原因看到其他人,并修改了如下代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
现在什么都没打印出来了.
我在这里错过了什么?
一旦你的线程到达它的执行结束(在你的情况下,threadTest()方法的结尾),它就不再是一个活动的线程.
如果Thread.sleep在方法中添加过长的时间,您将看到此活动线程数进一步增加.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |