Java使用Thread类等待上面线程运行完,再执行下面的代码
1、关键的代码:
//需要等待上面的线程执行完成后,再执行下面的代码
while (Thread.activeCount() > 2){
Thread.yield();
}
案例演示:
class MyData1{
int number = 0;
}
public class Test {
public static void main(String[] args) {
// 在没有启动子线程的时候, 查看启动了多少线程
Thread.currentThread().getThreadGroup().list();
MyData1 myData1 = new MyData1();
for (int i = 0; i < 20; i++) {
new Thread(()->{
for (int j = 1; j <= 1000; j++) {
myData1.number++;
}
}, String.valueOf(i)).start();
}
//需要等待上面20个线程计算完成后,再用main取得最终结果
while (Thread.activeCount() > 2){
Thread.yield();
}
System.out.println(Thread.currentThread().getName() + "最终number:" +myData1.number);
}
}