CountDownLatch 是一个线程等待其他线程, CyclicBarrier 是多个线程互相等待。CountDownLatch 的计数是减 1 直到 0,CyclicBarrier 是加 1,直到指定值。CountDownLatch 是一次性的, CyclicBarrier 可以循环利用。CyclicBarrier 可以在最后一个线程达到屏障之前,选择先执行一个操作。Semaphore ,需要拿到许可才能执行,并可以选择公平和非公平模式。