countdownlatch减法计数器:允许一个或多个线程等待直到在其他线程中执行的一组完成的同步操作。
用countdownlatch给定的初始值,直到countDown()方法计数器达到0
CyclicBarrier加法计数器:允许一组线程全部等待彼此到达共同屏障点的同步辅助,达到共同屏障之后还可以重置再进行执行。
CountDownLatch的计数器只能使用一次,而CyclicBarrier的计数器可以使用reset()方法重置,可以使用多次,所以CyclicBarrier能够处理更为复杂的场景;
Semaphore信号量:维持一组许可证,如果有必要,每个acquire()都会阻塞,直到许可证release()释放信号量可用,即空置同时并发量。
指定并发量,只有这个数量的线程可以同时执行,执行完释放控制量后别进程才能继续执行。
semaphore.acquire(); 每执行一次,“控制量"就加一,当大于semaphore的"控制量"时将会阻塞
semaphore.release() 释放一次"控制量”
Semaphore可以简单 类比于线程池,只不过Semaphore存放的是数量,线程池放的是线程
抢车位:6个车--3个车位。