首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java同步例证之闭锁(CountDownLatch)

2012-12-18 
java同步例子之闭锁(CountDownLatch)在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等

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 .....");}});}}

热点排行