主线程等待所有子线程执行完毕后再继续的问题
2017-11-08 16:51
417 查看
1. join 方法
public class WorkThread extends Thread { @Override public void run() { try { System.out.println(getName() + "run start."); //模拟完成子任务执行的时间 sleep(1000); System.out.println(getName() + "run finished."); } catch (InterruptedException e) { e.printStackTrace(); } } }
public class Main { public static void main(String[] args) { //启动两个子线程执行子任务 WorkThread workThread1 = new WorkThread(); WorkThread workThread2 = new WorkThread(); workThread1.start(); workThread2.start(); //运行后面的业务 System.out.println("run next process."); } }
2. countdownlatch
public class Main { public static void main(String[] args) { //创建2个点的CountDownLatch对象 CountDownLatch countDownLatch = new CountDownLatch(2); //将countDownLatch对象的引用传递给子线程里 WorkThread workThread1 = new WorkThread(countDownLatch); WorkThread workThread2 = new WorkThread(countDownLatch); workThread1.start(); workThread2.start(); try { //调用await方法阻塞当前线程,等待子线程完成后在继续执行 countDownLatch.await(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("run next process."); } }
public class WorkThread extends Thread { @Override public void run() { try { System.out.println(getName() + "run start."); //模拟完成子任务执行的时间 sleep(1000); System.out.println(getName() + "run finished."); } catch (InterruptedException e) { e.printStackTrace(); } } }
相关文章推荐
- 并发问题和主线程等待所有子线程运行完毕再执行
- Java多线程--让主线程等待所有子线程执行完毕
- Java主线程等待所有子线程执行完毕再执行解决办法集
- Java多线程--让主线程等待所有子线程执行完毕
- CountDownLatch实现主线程等待所有子线程运行结束后再继续执行的实现
- java主线程等待所有子线程执行完毕在执行(常见面试题)
- 主线程等待所有子线程执行完毕例子
- Java主线程等待所有子线程执行完毕再执行解决办法(转)
- Java主线程等待所有子线程执行完毕再执行解决办法
- 主线程等待所有子线程执行完毕例子
- java多线程实现主线程等待所有子线程执行完毕
- Java多线程--让主线程等待所有子线程执行完毕在执行
- Java主线程等待所有子线程执行完毕再执行解决办法
- Java多线程--让主线程等待所有子线程执行完毕代码
- Java多线程--让主线程等待所有子线程执行完毕(转)
- java主线程等待所有子线程执行完毕在执行(常见面试题)
- java主线程等待所有子线程执行完毕在执行(常见面试题)
- Java多线程--让主线程等待所有子线程执行完毕
- [置顶] [转]Java多线程--让主线程等待所有子线程执行完毕
- Java多线程--让主线程等待所有子线程执行完毕