以下流程图是通过阅读JDK8源码得出。
一、ReentrantLock
ReentrantLock中state表示锁定次数,为0时表示未被锁定。默认使用非公平锁。
![](https://img.haomeiwen.com/i7914265/59f820d952982934.png)
![](https://img.haomeiwen.com/i7914265/2e9c850df4e794a1.png)
![](https://img.haomeiwen.com/i7914265/73baae17a963ac9f.png)
二、ReentrantReadWriteLock
state为int类型,高16位用于读锁,低16位用于写锁。默认非公平锁。
![](https://img.haomeiwen.com/i7914265/04a4891f8259ea26.png)
![](https://img.haomeiwen.com/i7914265/a97e71c33e8ef616.png)
![](https://img.haomeiwen.com/i7914265/4cc8c55c5c7543a0.png)
![](https://img.haomeiwen.com/i7914265/0ad9466906792da7.png)
![](https://img.haomeiwen.com/i7914265/1c82ebb1b4931b8b.png)
三、Semaphore
state表示许可数量。默认非公平锁。
![](https://img.haomeiwen.com/i7914265/492b4693f2331c4d.png)
![](https://img.haomeiwen.com/i7914265/f4eff6d062a164cd.png)
![](https://img.haomeiwen.com/i7914265/52bc53d870546190.png)
四、CountDownLatch
state是初始化时传入的参数。
![](https://img.haomeiwen.com/i7914265/dab530870ddb455e.png)
![](https://img.haomeiwen.com/i7914265/19360b53886ed60c.png)
以下流程图是通过阅读JDK8源码得出。
ReentrantLock中state表示锁定次数,为0时表示未被锁定。默认使用非公平锁。
state为int类型,高16位用于读锁,低16位用于写锁。默认非公平锁。
state表示许可数量。默认非公平锁。
state是初始化时传入的参数。
本文标题:七、AQS的子类实现
本文链接:https://www.haomeiwen.com/subject/frbnxktx.html
网友评论