Zhou Study hard, improve every day.

多线程源码阅读

2020-05-01
本文 488 字,阅读全文约需 2 分钟

1.源码阅读原则

1.跑不起来不读(如果不跑起来,很有可能顺着点,由于多态的存在,有可能会点到父类实现、会中断线索)
2.解决问题就好--目的性
3.一条线索到底
4.无关细节略过
5.一般不读静态
6.一般动态读法

读源码先读骨架

学会画结构图

2.源码阅读记录

Title: ReentrantLock.lock()执行流程
ReentrantLock->Sync: Sync.lock()
Note right of Sync: ReentrantLock的内部类
Note left of ReentrantLock: 对象A的描述(提示)
#Sync->Sync: if (compareAndSetState(0, 1))
Note right of Sync: 调用了内部的cas方法,并将独占线程设置为当前线程
小三-->>ReentrantLock: 对象B找我了
ReentrantLock->Sync: 你真的好吗?
Note over 小三,Sync: {\nhello}
#participant C
#Note right of C: 没人陪我玩
Lock.lock()方法调用路径

Similar Posts

下一篇 AQS源码阅读

Comments