为什么要用CountDownLatch?《十三》

CountDownLatch是一个并发工具类,常用于协调多个线程间的同步。它允许一个或多个线程等待其他线程完成操作,例如在启动4个任务后,任务A会等待这4个任务执行完毕再继续。API包括:await()使调用线程挂起直至count为0,await(long, TimeUnit)在超时后继续执行,countDown()将count减1。" 124667576,13884390,教育机构响应式HTML模板 - EduWell,"['前端开发', 'HTML', 'CSS', 'JavaScript', 'Bootstrap']
摘要由CSDN通过智能技术生成
CountDownLatch并发类的用法

CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。

比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。

比如下面的代码是让额外的线程和循环里面的线程都执行完毕后才最后打印
System.out.println("10个线程已执行完毕");

API

  • 调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行
  • public void await() throws InterruptedException { };
  • 和await()类似,只不过等待一定的时间后count值还没变为0的话就会继续执行
  • public boolean await(long timeout, TimeUnit unit) throws InterruptedException { };
  • 将count值减1
  • public void countDown() { };
 
import java.util.concurrent.CountDownLatch;

public class TestCountDownLatch {
   
    final CountDownLatch latch = new CountDownLatch(11);
    Thread thread = new Thread(new Runnable() {
   
        @Override
        public void run() {
   
            System.out.println("线程" + Thread.currentThread().getId() + "额外的订单");
            latch.countDown();
            System.out.println("线程" + Thread.currentThread().getId() + "剩余数量" + latch.getCount());

        }
    });

    public void</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值