CountDownLatch的工作流程

CountDownLatch的工作流程:
在这里插入图片描述

1.通过CountDownLatch(int count)构造器给sync同步器的state赋值。
2.每调countDown一次state数值-1,直到state为0时唤醒等待队列中head后的第一个线程。
3.没调await方法一次都会去判断state是不是为0,当为0时直接执行,不为0时排队等待,直到被park唤醒。
问题一:为什么使用共享锁而不用独占锁?
独占锁只有在释放资源时才会唤醒head节点的下一个node,如果使用独占锁调用await方法的线程只会执行一个,而共享锁在自身被唤醒得到资源之后会自动去唤醒head的下一个node,通过不断自动唤醒下一个node来达到唤醒所有调用await方法的线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值