CountDownLatch使用小例
2016-03-01 00:00
453 查看
摘要: CountDownLatch使用小例
需要:主线程里启动子线程,需要等子线程里的某个操作完成后主线程才能继续往下走。
结果:
test-main1
test1
test1
test-main2
test2
test2
CountDownLatch是原子操作,await()阻塞直到初始值变为0
只有当两个线程都走完test1时主线程才会继续往下走。
需要:主线程里启动子线程,需要等子线程里的某个操作完成后主线程才能继续往下走。
final CountDownLatch countDownLatch = new CountDownLatch(2); for(int i=0;i<2;i++) { // 服务端启动 new Thread(new Runnable() { public void run() { try { Thread.sleep(100); System.out.println("test1"); Thread.sleep(100); countDownLatch.countDown(); Thread.sleep(100); System.out.println("test2"); } catch (Exception e) { e.printStackTrace(); System.exit(-2); } } }).start(); } System.out.println("test-main1"); try { countDownLatch.await(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("test-main2");
结果:
test-main1
test1
test1
test-main2
test2
test2
CountDownLatch是原子操作,await()阻塞直到初始值变为0
只有当两个线程都走完test1时主线程才会继续往下走。
相关文章推荐
- Java多线程编程之CountDownLatch同步工具使用实例
- Java并发同步工具类之CountDownLatch
- CountDownLatch的介绍和使用
- java并发学习之CountDownLatch
- CountDownLatch和CyclicBarrier的区别
- 多线程CountDownLatch用法
- CountDownLatch简单介绍
- CountDownLatch Race
- 一些线程相关的问题
- Java CountDownLatch类的使用
- 多个线程同时开始启动计时框架的设计与实现
- java 多线程之CountDownLatch用法
- JAVA对多线程的两个有用的辅助类(CountDownLatch和AtomicBoolean)
- 浅析Java中CountDownLatch用法
- Java多线程(八)之Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- 多线程001 - 主线程等待子线程结束
- 多线程002 - 再谈CountDownLatch
- 多线程003 - 再谈CyclicBarrier
- 线程状态控制 CountDownLatch和CyclicBarrier的区别
- java线程中锁存器CountDownLatch的使用