【并发编程】 --- Reentrantlock源码解析2:公平锁加锁过程超详细解析
【推荐阅读】微服务还能火多久?>>> 文章目录 1 前情回顾 --- 同步方法交替执行时Reentrantlock公平锁的逻辑 2 线程t1抢到锁并且没释放的情况 2.1 线程t2、t3、t4......入队 --- addWaiter(Node.EXCLUSIVE), arg)方法 2.2 线程 t2、t3、t4...入队后 ---》自旋 + park 2.2.1 前置知识 --- Node数据结构介绍 2.2.2 线程 t2、t3、t4...入队后 ---》自旋 + park的具体流程 3 Reentrantlock公平锁加锁过程总结 源码地址: https://github.com/nieandsun/concurrent-study.git 1 前情回顾 — 同步方法交替执行时Reentrantlock公平锁的逻辑 前面一篇文章《 【并发编程】 — Reentrantlock源码解析1:同步方法交替执行的处理逻辑 》讲过无论是synchronized还是Lock锁, 让某块代码变为同步的本质 就是: 当一个线程执行该方法后,其他线程无法进入该方法,对应于Reentrantlock来说就是让其他线程的lock()方法无法正常返回。 那篇文章里讲过在方法交替执行时,Reentrantlock公平锁的主要逻辑如下,这里就不再过多叙述。 2 线程t1抢到锁并且没释放的情况 2.1