java之countDownLatch()简介说明

欣喜 Java经验 发布时间:2024-11-20 10:47:01 阅读数:7592 1
下文笔者讲述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("程序运行完成!!!");

    }
}
CountDownLatch简介说明
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202411/17320709378180.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者