🚀 优质资源分享 🚀
| 学习路线指引(点击解锁) | 知识定位 | 人群定位 |
|---|---|---|
| 🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
| 💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
本文紧接上文的AQS源码,如果对于ReentrantLock没有基础可以先阅读我的上一篇文章学习ReentrantLock的源码
ReentrantLock锁重入原理
重入加锁其实就是将AQS的state进行加一操作
然后释放锁资源将AQS的state进行减一操作
当state为0时才会彻底的释放锁资源
ReentrantLock可打断原理
在ReentrantLock中可打断就是在等待锁的过程中可以被interrupt打断(需要调用lockInterruptibly),lock方法设置了打断标记,但是只有在线程获得锁的时候才能知道自己有没有在阻塞的过程中有没有被打断。
final boolean acquireQueued(final Node node, int arg) {
boolea

本文详细剖析了ReentrantLock的锁重入、可打断及条件变量原理。通过源码分析,揭示了lockInterruptibly()方法如何实现线程打断,以及Condition如何管理等待队列进行节点的唤醒。此外,还探讨了await()和signal()的实现细节。
最低0.47元/天 解锁文章
2097

被折叠的 条评论
为什么被折叠?



