实现子线程未执行完主线程阻塞的方式有很多种,不过大致原理是计数,确保都执行完毕或者通过主线程和所有子线程保证顺序执行的方式,对于countDownLatch以及java线程池的都是concurent下面的jar包
方法1:用sleep方法,让主线程睡眠一段时间,当然这个睡眠时间是主观的时间,是我们自己定的,这个方法不推荐
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0;i<1000;i++){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(2222);
方法2:使用Thread的join()等待所有的子线程执行完毕,主线程在执行,thread.join()把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法