AQS原理

目录

执行流程

节点阻塞后

唤醒下一个线程 

图解 (黑马)

非公平锁的体现

基于ReentrantLock的非公平锁展现

AQS原理_第1张图片

执行流程

AQS原理_第2张图片 

 AQS原理_第3张图片

AQS原理_第4张图片 

AQS原理_第5张图片 

AQS原理_第6张图片 

AQS原理_第7张图片 

AQS原理_第8张图片 

AQS原理_第9张图片 

AQS原理_第10张图片 

AQS原理_第11张图片 

AQS原理_第12张图片 

AQS原理_第13张图片 

AQS原理_第14张图片 

节点阻塞后

 

AQS原理_第15张图片 

AQS原理_第16张图片 

AQS原理_第17张图片 

AQS原理_第18张图片 

AQS原理_第19张图片 

唤醒下一个线程 

AQS原理_第20张图片

  

AQS原理_第21张图片 

图解 (黑马)

AQS原理_第22张图片 

非公平锁的体现

从上面的源码中可以看到线程一来就去尝试获取锁(体现非公平),在未获得锁就进入acquire(1)方法,执行tryAcquire(arg)再次尝试获取锁,没有获得锁再进入等待队列。

对于公平锁而言,直接进入等待队列不会尝试获取锁(先进先出)。

 

你可能感兴趣的:(java,java,开发语言)