2 张图,让你一秒理解 CountDownLatch、CyclicBarrier

2019-05-16 11:26:42 浏览数 (1)

CountDownLatch(倒数闩)

经常用于监听某些初始化操作,等初始化线程全部执行完毕后,才通知主线程继续工作。

  • 即一个线程处于阻塞的状态下,他要收到多少次通知,才能被苏醒,并继续往下执行。
  • 注意,只能阻塞 一个线程。
  • countDown.countDown() 到了 0,并使得 countDown.await() 苏醒之后,仍旧能进行 countDown.countDown(),并且不会报错,但是 countDown.getCount() 始终为 0。
CyclicBarrier(同步屏障)

场景假设:每个线程代表一个跑步运动员,当所有运动员都准备好,才能一起出发,只要有一个人没有准备好,那么大家都要等待他。

  • 注意:阻塞的是每个线程。

0 人点赞