在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。
从下面的例子中可以看到,其实CountDownLatch和CylicBarrier这两个类都有等待其他进程的意思,只是CountDownLatch在主线程里面阻塞的,在子线程里面coundown操作完之后还是会继续走countdown下面的操作。而CylicBarrier是在各个子线程里面阻塞的,线程A的await调用了之后,并不会继续进行await后面的操作,而是要等在所有子线程的await()方法都运行了之后,才会各自进行其await后面的操作。CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。