精通c和java_Java精通并发-Condition方法实现分析与讲解

在上两次已经对Condition这个类的javadoc进行了完整的解读,接下来则对它里面的方法进行一下纵览,并进行官方的解读,如下:

136f902f29145c64f094f66071d4c8c4.png

下面一一来读一下各个方法的说明:

await():

4d285129dd0fe021e0e87177c84a346d.png

上面这段说明已经道出了这个方法的核心作用,非常重要,继续来看一下这四种情况是哪四种?

55eac920a807e9eb10e76575710d33f8.png

87c0bb3ae6ae9d5046871036b089cdd2.png

79599ef4c32c60e978daa2c26fc53e97.png

接下来是实现上的考量,简单看一下既可:

2c18eeab55b8fbd06875874fb1991011.png

awaitUninterruptibly():

在了解了第一个await()方法之后,这个就比较好理解了,就是它的一个特例,也就是不响应中断而已,可以稍看一下它的说明:

fa2fa1e7d2dc16ce8667885129d43d54.png

awaitNanos(long):

这个得看一下,跟之前的有一些不一样的地方,不过跟await()一样的地方这里就不过多说明了,只看不一样的:

f688ef4182e7d068ef0ee1b4b0ef56ea.png

好,接下来就到了不一样需要细细阅读的地方了:

4f0bce6698bb09d91b1be602d3e48499.png

5332fc87d5e13ac22a3ffe72c4182ec4.png

实现上的考量就不看了,看一下参数返回的解释:

52b91323f48dd493a16e7df6540496ee.png

await(long, TimeUnit):

它中上面的awaitNanos本质上是一样的,只是提供了一个单位给用户来指定而已,大致瞅一下:

ad73086929f4d5b1678f2201a786841c.png

awaitUntil(Date):

这个也比较好理解,就是指定了一个具体的日期时间,直接看一下官方给的一个示例,就不细看了,基本雷同:

2ed8737f2105e1e1e784ace358447309.png

signal():

e7e821d83efac58214eb4b113e5fbd56.png

signalAll():

了解了signal方法之后,对于signalAll()就比较好理解了:

19986c940454d4aa14ae5de3c20d03fe.png

以上就对Lock、Condition类的官方说明全部给阅读完了,现在还停在纯理论的层面,不过这种阅读能对各个类之间的关系有一个大局关,知道它出现的场景比只是去用它的意义要大得多得多,所以通过阅读官方文档的收获其实也是最明显的,坚持!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值