0.总结
1.CountDownLatch是1个线程等待其他线程,CyclicBarrier是多个线程相互等待;
2.CountDownLatch是计数-1,直到减为0,CyclicBarrier是计数+1,直到达到指定值;
3.CountDownLatch是一次性的,CyclicBarrier是循环使用的;
4.CyclicBarrier可以在最后一个线程到达后,选择1执行1个优先操作;
5.Semaphore,需要拿到锁才能执行,并且可以选择公平、非公平的模式
1.CountDownLatch——基于AQS实现
它是一个同步辅助器,允许一个或多个线程一直等待,直到一组在其他线程执行的操作全部完成。
2.CyclicBarrier—基于Reentrantlock实现
一组线程会互相等待,直到所有线程都到达一个同步点。
* 就像一群人被困到了一个栅栏前面,只有等最后一个人到达之后,他们才可以合力把栅栏(屏障)突破。
3.Semaphore信号量
Semaphore 信号量,用来控制同一时间,资源可被访问的线程数量,一般可用于流量的控制。
标签:CyclicBarrier,Semaphore,线程,CountDownLatch,多线程,等待 From: https://www.cnblogs.com/fulaien/p/17237087.html