ReentrantLock 是如何实现可重入性的? 迷失技术de小猪 4个月前 并发编程 78 ReentrantLock 内部自定义了同步器 Sync(Sync 既实现了 AQS, 又实现了 AOS,而 AOS 提供了一种互斥锁持有的方式),其实就是 加锁的时候通过 CAS 算法,将线程对象放到一个双向链表中,每次获 取锁的时候,看下当前维护的那个线程 ID 和当前请求的线程 ID 是否 一样,一样就可重入了。 回复 我来回复 暂无回复内容 请 登录 或者 注册 后回复。 相关问题 Java 中的线程池是如何实现的? 4个月前 0 81 JVM 对 Java 的原生锁做了哪些优化? 4个月前 0 68 Synchronized 用过吗,其原理是什么? 4个月前 0 58 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理 又是什么?什么是 CAS,它有什么特性? 4个月前 0 41 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。 4个月前 0 79 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具? 4个月前 0 46 为什么说 Synchronized 是非公平锁? 4个月前 0 61 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁? 4个月前 0 50 什么是锁消除和锁粗化? 4个月前 0 46 既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的? 4个月前 0 58