中国空间站最新消息新闻,杭州公司注册地址可以是住宅吗,江苏省建设信息网站,北京市住房和城乡建设厅CountDownLatch 是 Java 中用于多线程编程的一个同步工具。 它允许一个或多个线程等待其他线程执行完特定操作后再继续执行。 CountDownLatch 通过一个计数器来实现#xff0c; 该计数器初始化为一个正整数#xff0c;每当一个线程完成了指定操作#xff0c;计数器就会减一。…CountDownLatch 是 Java 中用于多线程编程的一个同步工具。 它允许一个或多个线程等待其他线程执行完特定操作后再继续执行。 CountDownLatch 通过一个计数器来实现 该计数器初始化为一个正整数每当一个线程完成了指定操作计数器就会减一。 当计数器变为零时所有等待的线程将被唤醒可以继续执行后续操作。 CountDownLatch 在并发编程中常用于等待多个线程完成某个任务 然后再进行下一步操作。
倒计数器门闩的含义就是把门锁起来不让里面的线程跑出来。 因此这个工具通常用来控制线程等待它可以让某一个线程等待 直到倒计数结束再开始执行。
public class CountDownLatchDemo implements Runnable{static final CountDownLatch end new CountDownLatch(10);static final CountDownLatchDemo demo new CountDownLatchDemo();Overridepublic void run() {try{Thread.sleep(new Random().nextInt(10)*1000);System.out.println(check complete);end.countDown();}catch (InterruptedException e){e.printStackTrace();}}public static void main(String[] args) {ExecutorService executorService Executors.newFixedThreadPool(10);for(int i 0;i10;i){executorService.submit(demo);}try {end.await();} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println(Finish!);executorService.shutdown();}
}
生成一个CountDownLatch实例计数数量为10 这表示需要10个线程完成任务等待在CountDownLatch上的线程才能继续执行。 代码中使用CountDownLatch.countdown()方法通知CountDownLatch, 一个线程已经完成了任务倒计数器减1. CountDownLatch.await()方法要求主线程等待所有检查任务全部完成 待10个任务全部完成后主线程才能继续执行。