1、这三个都是AQS的经典实现,CyclicBarrier是基于ReentrantLock实现,而另外两个是直接使用AQS实现的。
2、通俗的讲。。。。
2.1 CountDownLatch就是需要等其他线程执行指定次数的countDown(),然后主线程就能被唤醒。
2.2 CyclicBarrier就是拦住所有线程,等阻塞线程的个数达到一定数,就放开,还可以再放开之前优先执行某个任务
2.3 Semaphore就是放开指定线程数,阻塞剩余线程,有过有人释放,则唤醒一个线程。
1、这三个都是AQS的经典实现,CyclicBarrier是基于ReentrantLock实现,而另外两个是直接使用AQS实现的。
2、通俗的讲。。。。
2.1 CountDownLatch就是需要等其他线程执行指定次数的countDown(),然后主线程就能被唤醒。
2.2 CyclicBarrier就是拦住所有线程,等阻塞线程的个数达到一定数,就放开,还可以再放开之前优先执行某个任务
2.3 Semaphore就是放开指定线程数,阻塞剩余线程,有过有人释放,则唤醒一个线程。