Zeros Tech Zeros Tech
首页
架构
大数据
数据库
  • 面试

    • Java面试
    • 大数据面试
    • 架构面试
语言
运维
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

迹_Jason

全栈工程师
首页
架构
大数据
数据库
  • 面试

    • Java面试
    • 大数据面试
    • 架构面试
语言
运维
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

    • 设计模式

    • 多线程
    • 设计模式
    • 性能测试
    • CompletableFuture
    • ConcurrentHashMap原理
    • HashMap
    • Java 应用 TIPS
    • Java 专业方法集
    • java_io
    • Java11新特性
    • JAVA并发编程CAS和AQS
    • java汇总
    • Java基础
    • synchronized
    • ThreadLocal
    • Mapstruct
    • LockSupport
    • ReentrantLock
      • CAS
    • javaScript

    • python

    • scala

    • node

    • lua

    • rust

    • shell

    • Gradle

    • 语言
    • java
    迹_Jason
    2021-12-17

    ReentrantLock

    🤔方向点:

    1. 公平与非公平锁实现
    2. args参数的使用
    

    # 公平与非公平锁实现

    • 在初始化 ReentrantLock 对象时设置时否公平锁
    • 所谓公平锁就是当前线程执行时如果获取AQS的CHL队列中的head节点为非当前线程,则无法获取锁,同时,挂起当前线程
    • 所谓非公平锁就是只要当前state=0(无锁状态),就可以竞争获取锁

    所以公平锁会根据CHL队列进行加锁,而非公平锁则不会在乎队列中的Node节点,通过CAS方式尝试获取锁,如果获取失败,再将线程放到CHL队列的末尾(tail)。

    # args参数的使用

    Args是上锁的线程个数。

    编辑 (opens new window)
    上次更新: 2021/12/17, 16:15:07
    LockSupport
    CAS

    ← LockSupport CAS→

    最近更新
    01
    权限
    12-17
    02
    SpringGateway
    12-17
    03
    Spock
    12-17
    更多文章>
    Theme by Vdoing | Copyright © 2021-2021 迹_Jason | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×