package jdk;
import java.util.concurrent.CountDownLatch;
/**
* Created by yesh on 2015/3/22.
*/
public class CountDownLatchDemo {
public static void main(String[] args) throws InterruptedException {
CountDownLatch downLatch = new CountDownLatch(2);
new Worker(downLatch).start();
new Worker(downLatch).start();
//等到2个线程执行完毕就结束,如果new CountDownLatch(2)改成3
//那就要永远的等待
downLatch.await();
System.out.println("worker do over");
}
private static class Worker extends Thread{
private CountDownLatch downLatch = null;
public Worker(CountDownLatch downLatch){
this.downLatch = downLatch;
}
@Override
public void run() {
try {
doWork();
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
downLatch.countDown();
}
}
public void doWork() throws InterruptedException {
Thread.sleep(5000);
System.out.println("work....");
}
}
}
多线程下的同步工具--CountDownLatch
最新推荐文章于 2015-03-23 22:07:12 发布