美文网首页
2021-07-28 JUC 锁

2021-07-28 JUC 锁

作者: 炒面Z | 来源:发表于2021-07-28 11:23 被阅读0次

1. 读写锁 ReentrantReadWriteLock 的用法

  • 读写锁对象生成之后,内部会存在两个锁,读锁和写锁
    public ReentrantReadWriteLock(boolean fair) {
        sync = fair ? new FairSync() : new NonfairSync();
        readerLock = new ReadLock(this);
        writerLock = new WriteLock(this);
    }
  • 读锁是共享锁,同时被多个线程都获取
  • 写锁是排他锁,同时只能被一个线程获取
  • 读锁与写锁互斥(一个线程不能同时拥有锁对象的读锁和写锁)
  • 写锁能够降级为读写,读锁无法升级为写锁

2.reentrantLock的condition

  • 流程图


    image.png

    condition的的

  • await() 把aqs中的阻塞队列(CHL)的node节点转移到condition的单向队列中
  • signal 把condition的单向队列转移到aqs的阻塞队列中

相关文章

  • 2021-07-28 JUC 锁

    1. 读写锁 ReentrantReadWriteLock 的用法 读写锁对象生成之后,内部会存在两个锁,读锁和写...

  • JUC源码循序渐进

    目录 必读篇 JUC源码分析—CAS和Unsafe JUC源码分析—AQS JUC锁篇 JUC源码分析-JUC锁(...

  • JAVA基础—JUC包(java.util.concurrent

    1. JUC - CountDownLatch 倒计时锁 运行结果 2. JUC之Semaphore信号量 运行结...

  • 同步器AbstractQueuedSynchronizer浅析

    Java中的锁主要有:synchronized锁和JUC(java.util.concurrent)locks包中...

  • JUC

    1.说说JUC包你都知道多少? 2.说说AQS 3.JUC中的锁,ReentrantLock 4.说说Atomic...

  • synchronized和juc比较

    为什么有了synchronized之后还需要juc的锁呢? 1、synchronized是非公平锁,无法用作公平锁...

  • JUC中的锁(一)概述

    Java中的锁,可以分为Synchronized”同步锁”和”JUC包中的锁”。同步锁之前说过很多了,可以看之前的...

  • 实现分布式锁

    Java中的锁主要包括synchronized锁和JUC包中的锁,这些锁都是针对单个JVM实例上的锁,对于分布式环...

  • 2018-07-26 CountDownLatch

    【转】Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例

  • 并发与锁

    并发与锁 先列个提纲逐步细化。 一、 JUC AQS 1) AbstractQueuedSynchronizer ...

网友评论

      本文标题:2021-07-28 JUC 锁

      本文链接:https://www.haomeiwen.com/subject/khhzmltx.html