八仙过海,四种同步(Java中的四种同步类)

在这里插入图片描述

前言

苏宁估计是今年最大的黑马了,我们在开始中没有期望能战胜G2小组第一出线,在八进四中我们也没有没想到苏宁能够打赢京东,结果苏宁3:1战胜京东,我们认为苏宁今年的世界赛的成绩已经很好了,或许也就止步于此了,毕竟他作为LPL三号种子,接下来要面对的是一号种子Tes,而且Tes刚经历了一场让二追三的血腥厮杀,状态火热。苏宁用实力告诉你,不,我要追求更高的目标,他们战胜了Tes,成为了LPL唯一的希望。
在这里插入图片描述

现在我们唯一的期待,10月31号,我们能听到一句恭喜苏宁,恭喜LPL!
在这里插入图片描述

这波,感谢一波大校,没问题吧!周六大校支持一波大乌龟没问题吧

感谢你,苏小落

回归主题,今天给大家分享个简单的知识点,JDK并发包里面自带的一些工具类,功能很强大实用

CountDownLatch

CountDownLatch就像一个门,门上有N把锁,只有当锁同时都打开,我们才能开门。这里这个门是一次性的,用完之后不能重新再给这个门上锁,为什么我要强调一次性呢?因为下面还有不是一次性的CyclicBarrier

CountDownLatch,使一个线程等待其他线程都达到相应的状态再执行,完成工作的主要方法就是await()、countDown()

内部是通过一个计数器实现的,计数器的初始值就是要等待线程的数量,每当一个线程执行完毕调用countDown()之后计数器数值减一,计数器数值变为0的时候,表示所有线程执行完毕,调用await()方法等待的线程便会恢复工作

来看一个例子:

public class TestCountDownLatch {
   

    public static void main(String[] args) {
   
        // 传入参数2,代表需要等待两个线程
        final CountDownLatch latch = new CountDownLatch(2);
        //线程等待一秒
        new Thread(new Runnable() {
   

            public void run() {
   
                try {
   
                    Thread.sleep(1000L);
                } catch (InterruptedException e) {
   
                    e.printStackTrace();
                }
                System.out.println("一号准备完毕,用时1秒!");
                latch.countDown();
            }
        }).start();
        //线程等待三秒
        new Thread(new Runnable() {
   
            public void run() {
   
                try {
   
                    Thread.sleep(2000L);
                } catch (InterruptedException e) {
   
                    e.printStackTrace();
                }
                System.out.println("二号准备完毕,用时2秒!");
                latch.countDown();
            }
        }).start();
        try {
   
            System.out.println("两位选手请准备!");
            //主线程调用await,等待两个线程到达(即调用countDown)
            latch.await();
        } catch (InterruptedException e) {
   
            e.printStackTrace();
        }
        // 两个线程执行完毕后,主线程恢复运行
        System
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值