java之countDownLatch()简介说明
下文笔者讲述java中CountDownLatch的简介及示例说明,如下所示
CountDownLatch的简介
CountDownLatch是java中并发编程中的同步辅助类 CountDownLatch允许一个或多个线程等待其他线程操作完成继续运行 CountDownLatch定义一个初始值为整数值,等待事件数量 当计数器值为零时,则代表所有计数器无需等待,程序可向下继续运行 CountDownLatch常用于等待线程的等待和释放 CountDownLatch注意事项 1.当计数器值减为零,CountDownLatch无法再次使用,需重新创建一个实例 2.CountDownLatch应用场景, 当多个线程必须同时完成后,再运行其他代码 CountDownLatch常用方法: CountDownLatch(int count): 构造方法,初始化计数器的值 await(): 使当前线程等待 直到计数器的值减为零 当计数器的值已经为零,则该方法立即返回。 await(long timeout,TimeUnit unit): 使当前线程等待,直到计数器的值减为零或等待时间超时 当计数器的值已经为零,则该方法立即返回 countDown(): 将计数器的值减一 当计数器的值减为零 则所有等待的线程会被释放
CountDownLatch使用步骤
// 1:设置线程A的运行次数为2/ CountDownLatch v = new CountDownLatch(2); // 2:递减锁存器的计数 // 当计数到达零,则释放所有等待的线程 v.countDown(); // 3:使当前线程在锁存器倒计数至零之前一直等待 // 除非线程被中断 // 如果当前的计数为零,则此方法立即返回 v.await();
CountDownLatch示例
package com.jd; import java.util.concurrent.CountDownLatch; /** * java265.com CountDownLatch测试 * 通过这一篇文章的学习,可以彻底掌握CountDownLatch的用法 * * */ public class CountDownLatchTest { public static void main(String[] args) { final int count = 2; final CountDownLatch latch = new CountDownLatch(count); for (int i = 0; i < count; i++) { new Thread(new Runnable() { @Override public void run() { try { System.out.println("线程开始运行" + Thread.currentThread().getId()); } catch (Throwable e) { } finally { latch.countDown(); } } }).start(); } try { // 2个线程countDown() latch.await(); } catch (InterruptedException e) { } System.out.println("程序运行完成!!!"); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。