java:CountDownLatch

1、在java.util.concurrent包下

  • 在java1.5被引入的
  • 一起引入的并发工具类CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue

2、CountDownLatch 使一个线程等其他线程完成各自的工作后在执行

3、CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量

  • 构造器中的计数值(count)实际上就是闭锁需要等待的线程数量
  • 没有提供任何机制去重新设置这个计数值
//Constructs a CountDownLatch initialized with the given count.
public void CountDownLatch(int count) {...}

4、主线程必须在启动其他线程后立即调用CountDownLatch.await()方法

  • 其他N 个线程必须引用闭锁对象
  • 通知机制是通过 CountDownLatch.countDown()方法来完成
  • count的值等于0时,主线程就能通过await()方法,恢复执行自己的任务

猜你喜欢

转载自my.oschina.net/u/3847203/blog/1820412