线程计数器学习

本文通过一个简单的例子介绍了 CountDownLatch 在 Java 多线程环境中的应用。该示例演示了如何利用 CountDownLatch 确保两个任务全部完成后才执行后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CountDownLatch是线程的计数器,举一个实际场景来介绍计数器的使用:

有2个人工作,2个人都做完了,这份工作才算结束,这个场景用java实现怎么做?

一种方式是加一个全局变量,A线程完成给变量减一,B线程结束也给变量减一,变量初始值为2.当前变量为0,就是2个线程结束的时候,而这个java提供了CountDownLatch。

CountDownLatch就是一个相对于所有线程的全局变量,用来阻塞线程的。

                 public static void main(String[] args){

                    ExecutorService pool = Executor.newFixedThreadPool(2);

                    CountDownLatch latch = new CountDownLatch(2);

                    pool.execute(new Runnable(){

                             System.out.println("工作1结束");

                             latch.countDown();

                    });

                    pool.execute(new Runnable(){

                             System.out.println("工作2结束");

                             latch.countDown();

                    });

                   latch.await();

                  System.out.println("2个工作都结束了 !");

                 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值