CountDownLatch(倒计时器)通常用来控制线程等待,它可以让一个线程等待直到倒计时结束再开始执行。CountDownLatch的构造函数接收一个整数作为参数,即当前这个计数器的个数:public CountDownLatch(int count);
CountDownLatch常用的方法:
countdown()方法,指倒计时器减一。
await()方法,在某个线程里调用,使该线程等待倒计时器为0后再继续执行。

应用示例:
public class CountDownLatchDemo implements Runnable{
private static CountDownLatch countDwonLatch=new CountDownLatch(5);
public void run(){
try {
Thread.sleep(new Random().nextInt(2000));
System.out.println("over");
countDwonLatch.countDown();//一个线程工作结束,计时器减1
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException {
CountDownLatchDemo dome=new CountDownLatchDemo();
ExecutorService exe=Executors.newFixedThreadPool(5);
for(int i=0; i<5; i++){
exe.execute(dome);
}
countDwonLatch.await();//主线程等待所有线程工作结束
System.out.println("All is over");
exe.shutdown();
}
}
本文介绍了一个用于线程同步的重要工具CountDownLatch。CountDownLatch允许一个线程等待其他多个线程完成任务后才继续执行。文章通过示例代码展示了如何创建CountDownLatch实例,并在主线程中使用await方法等待所有子线程执行完毕。
337

被折叠的 条评论
为什么被折叠?



