1、ReentrantLock是一个类,synchronized是一个关键字,都是在JVM层面实现的互斥锁的方式。 2、功能方面ReentrantLock的功能要比synchrized更为全面,RenntrantLock能够支持公平锁和非公平锁,synchronized只能支持非公平锁、Reentr
1、ReentrantLock是一个类,synchronized是一个关键字,都是在JVM层面实现的互斥锁的方式。 2、功能方面ReentrantLock的功能要比synchrized更为全面,RenntrantLock能够支持公平锁和非公平锁,synchronized只能支持非公平锁、Reentr
第一点:这个与AQS插入节点有关,在插入的时候,比如插入A节点到AQS队列中 ,是先使用上一个指针prev指向队列的尾,然后让AQS的tail指针指向A节点,但是这个时候AQS的尾部节点的next指针依旧指向为null没有指向 A节点,如果要从前往后查找节点这个时候刚刚插入的节点将会找不到。 另外一
synchronized是基于对象实现的。 先要对java中对象在堆内存的存储有一个了解。 以创建对象object为例: 在创建对象时一共会在堆内存中开辟三块空间,分别存储对象头、实例数据和对象填充。 在对象头中主要存储的是MarkWord、ClassPoint,其中对象的锁信息都是存储在MarkW