• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
logo Online Tools

Java的AQS源码浅析

Source : mp.weixin.qq.com Author : 任天兵

最近面试问过很多候选人Java锁有关的知识,可以感受到的是,大家的理解基本都停留在“八股文”的阶段,实质上对Java的锁以及多线程的同步机制这种底层原理,理解的不是很好。网上这类文章已经很多了,但是看了下有好多文章都是相互抄的,而且都是过时的,典型的例如AQS里的addWaiter方法在JDK16里就没见到,或许代码进行了重构了。通过文章也梳理一下我一般看源代码的习惯是怎样的。 AQS全称是AbstractQueuedSynchronizer,首先他是一个抽象类,其次他使用了队列来进行排队,然后作用是用来做线程间的同步的。他是Java里所有锁的基础,包括CountDownLatch以及读写锁,可重入锁等等都是基于AQS实现的。我们从ReentrantLock入手来管中窥豹,大概得看看AQS的源代码。 首先你要了解的是使用方法,一个典型的ReentrantLock使用方法写在了这个类的注释里。

View 34 Technology lddgo Shared on 2023-07-28