ReentrantLock 中的 4 个坑!(1)

简介: ReentrantLock 中的 4 个坑!(1)

JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局。JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我们锁的实现又多了一种显式锁 Lock。


前面的文章我们已经介绍了 synchronized,详见以下列表:


《synchronized 加锁 this 和 class 的区别!》《synchronized 优化手段之锁膨胀机制!》


《synchronized 中的 4 个优化,你知道几个?》


所以本文咱们重点来看 Lock。


Lock 简介


Lock 是一个顶级接口,它的所有方法如下图所示:


image.png


它的子类列表如下:


image.png


我们通常会使用 ReentrantLock 来定义其实例,它们之间的关联如下图所示:


image.png


PS:Sync 是同步锁的意思,FairSync 是公平锁,NonfairSync 是非公平锁。

相关文章
|
12月前
|
安全 Java
ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
|
3月前
ReentrantLock 可重入锁总结
ReentrantLock 可重入锁总结
29 0
|
5月前
ReentrantLock
ReentrantLock
25 1
|
5月前
|
存储 设计模式 安全
理解 AQS 和 ReentrantLock
在多线程编程中,同步机制是确保线程安全的关键。AQS(AbstractQueuedSynchronizer)和ReentrantLock是Java中两种常见的同步机制,它们各自具有不同的特性和适用场景。了解和掌握这两种机制对于编写高效、安全的并发程序至关重要。这篇文章将带你取了解和掌握这两种机制!另外值得一提的是:公平锁的实现与非公平锁是很像的,只不过在获取锁时不会直接尝试使用CAS来获取锁。只有当队列没节点并且state为0时才会去获取锁,不然都会把当前线程放到队列中。
162 1
|
12月前
ReentrantLock和Synchronized简单比较
ReentrantLock和Synchronized简单比较
42 0
|
Java
16.ReentrantLock全解读
大家好,我是王有志。今天和大家一起聊聊ReentrantLock,它是我们最常见的基于AQS实现的互斥锁。
120 0
|
缓存 Java Linux
ReentrantLock、ReentrantReadWriteLock、StampedLock
ReentrantLock、ReentrantReadWriteLock、StampedLock
ReentrantLock、ReentrantReadWriteLock、StampedLock
|
Java 容器 安全
ReentrantLock详解
本博客主要讲述ReentrantLock的实现原理,主要内容包括: AQS原理以及实现过程。 ReenetrantLock获取锁、释放锁流程,以及原理。 ReenetrantLock源码分析。
6154 1
|
Java
彻底理解ReentrantLock可重入锁的使用
java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从使用的角度来分析一下ReentrantLock。
194 0
彻底理解ReentrantLock可重入锁的使用
ReentrantLock介绍
ReentrantLock介绍
157 0