Java SDK并发包通过Lock
和Condition
两个接口来实现管程,其中Lock
用于解决互斥问题,Condition
用于解决同步问题。
Lock
相较于内置加锁机制synchronized
,显示锁Lock
除了支持类似synchronized
隐式加锁的方法外,还支持超时、非阻塞、可中断的方式获取锁,这三种方式为我们编写更加安全、健壮的并发程序提供了很大的便利。
UML
Condition
UML
使用示例
RPC请求(Dubbo源码)
1 | // 创建锁与条件变量 |
人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多。
Java SDK并发包通过Lock
和Condition
两个接口来实现管程,其中Lock
用于解决互斥问题,Condition
用于解决同步问题。
相较于内置加锁机制synchronized
,显示锁Lock
除了支持类似synchronized
隐式加锁的方法外,还支持超时、非阻塞、可中断的方式获取锁,这三种方式为我们编写更加安全、健壮的并发程序提供了很大的便利。
1 | // 创建锁与条件变量 |
微信支付
支付宝