读书人

java同步例证之闭锁(CountDownLatch)

发布时间: 2012-12-18 12:43:41 作者: rapoo

java同步例子之闭锁(CountDownLatch)
在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待,在某些场景下同CyclicBarrier类似。

package concurrent;import java.util.concurrent.CountDownLatch;/** * 闭锁 * @author user * */public class CountDownLatchTest {public void timeTasks(int nThreads, final Runnable task) throws InterruptedException{final CountDownLatch startGate = new CountDownLatch(1);for(int i = 0; i < nThreads; i++){Thread t = new Thread(){public void run(){try {startGate.await();task.run();} catch (InterruptedException e) {e.printStackTrace();}}};t.start();}System.err.println("当前计数:"+startGate.getCount());startGate.countDown();System.err.println("当前计数:"+startGate.getCount());}/** * @param args * @throws InterruptedException  */public static void main(String[] args) throws InterruptedException {CountDownLatchTest test = new CountDownLatchTest();test.timeTasks(2, new Runnable() {@Overridepublic void run() {System.err.println("to do .....");}});}}

读书人网 >编程

热点推荐