Java并发编程:CountDownLatch与CyclicBarrier和Semaphore的实例详解
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。CyclicBarrier类位于java.util.concurrent包下,CyclicBarrier提供2个构造器:参数parties指让多少个线程或者任务等待至barrier状态;参数barrierAction为当这些线程都达到barrier状态时会执行的内容。当所有线程线程写入操作完毕之后,所有线程就继续进行后续的操作了。而CountDownLatch无法进行重复使用。注意,在释放许可之前,必须先获获得许可。2)Semaphore其实和锁有点类似,它一般用于控制对某组资源的访问权限。