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

CountDownLatch (倒数闩,Latch:门闩)

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

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

CyclicBarrier(同步屏障,cyclic:周期的,循环的,barrier:屏障)

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

a) 注意:阻塞的是  每个线程

猜你喜欢

转载自my.oschina.net/u/2602893/blog/2885461