跟 Synchronized 相比,可重入锁 ReentrantLock 其实现 原理有什么不同? 迷失技术de小猪 3个月前 并发编程 35 其实,锁的实现原理基本是为了达到一个目的:让所有的线程都能看到某种标记。Synchronized 通过在对象头中设置标记实现了这一目的,是一种 JVM 原生的锁实现方式,而 ReentrantLock 以及所有的基于 Lock 接口的实现类,都是通过用一个 volitile 修饰的 int 型变量,并保证每个线程都能拥有对该 int 的可见性和原子修改,其本质是基于所谓的 AQS 框架。 回复 我来回复 暂无回复内容 请 登录 或者 注册 后回复。 相关问题 ReentrantLock 是如何实现可重入性的? 3个月前 0 75 什么是锁消除和锁粗化? 3个月前 0 43 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。 3个月前 0 78 创建线程池的几个核心构造参数? 3个月前 0 62 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性? 3个月前 0 86 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗? 3个月前 0 85 请 谈 谈 ReadWriteLock 和 StampedLock。 3个月前 0 72 请谈谈 AQS 框架是怎么回事儿? 3个月前 0 68 Java 中的线程池是如何实现的? 3个月前 0 80 如何让 Java 的线程彼此同步?你了解过哪些同步器? 请分别介绍下。 3个月前 0 60