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("程序运行完成!!!");
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


