Java并发编程专题(五)中,ReentrantLock的原理与使用方法详解?

2026-05-24 08:280阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3108个文字,预计阅读时间需要13分钟。

Java并发编程专题(五)中,ReentrantLock的原理与使用方法详解?

上一节,我们了解了Lock接口的一些基本说明,知道了Lock锁的常用形式,那么这一节,我们将正式开始学习JUC锁(java.util.concurrent包下的锁)。下面,我们来查看一下Lock最常用的实现类R。

Java并发编程专题(五)中,ReentrantLock的原理与使用方法详解?

上一节我们了解了Lock接口的一些简单的说明,知道Lock锁的常用形式,那么这节我们正式开始进入JUC锁(java.util.concurrent包下的锁,简称JUC锁)。下面我们来看一下Lock最常用的实现类ReentrantLock。

1.ReentrantLock简介

由单词意思我们可以知道这是可重入的意思。那么可重入对于锁而言到底意味着什么呢?简单来说,它有一个与锁相关的获取计数器,如果拥有锁的某个线程再次得到锁,那么获取计数器就加1,然后锁需要被释放两次才能获得真正释放。这模仿了 synchronized 的语义;如果线程进入由线程已经拥有的监控器保护的 synchronized 块,就允许线程继续进行,当线程退出第二个(或者后续) synchronized 块的时候,不释放锁,只有线程退出它进入的监控器保护的第一个 synchronized 块时,才释放锁。

阅读全文

本文共计3108个文字,预计阅读时间需要13分钟。

Java并发编程专题(五)中,ReentrantLock的原理与使用方法详解?

上一节,我们了解了Lock接口的一些基本说明,知道了Lock锁的常用形式,那么这一节,我们将正式开始学习JUC锁(java.util.concurrent包下的锁)。下面,我们来查看一下Lock最常用的实现类R。

Java并发编程专题(五)中,ReentrantLock的原理与使用方法详解?

上一节我们了解了Lock接口的一些简单的说明,知道Lock锁的常用形式,那么这节我们正式开始进入JUC锁(java.util.concurrent包下的锁,简称JUC锁)。下面我们来看一下Lock最常用的实现类ReentrantLock。

1.ReentrantLock简介

由单词意思我们可以知道这是可重入的意思。那么可重入对于锁而言到底意味着什么呢?简单来说,它有一个与锁相关的获取计数器,如果拥有锁的某个线程再次得到锁,那么获取计数器就加1,然后锁需要被释放两次才能获得真正释放。这模仿了 synchronized 的语义;如果线程进入由线程已经拥有的监控器保护的 synchronized 块,就允许线程继续进行,当线程退出第二个(或者后续) synchronized 块的时候,不释放锁,只有线程退出它进入的监控器保护的第一个 synchronized 块时,才释放锁。

阅读全文