码迷,mamicode.com
首页 > 其他好文 > 详细

AQS总结

时间:2020-04-02 12:02:12      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:rac   unlock   同步队列   可重入   sync   同步   null   down   abs   

一、全称

  • AbstractQueueSynchronier

二、并发包的使用

ReentrantLock:new ReentrantLock()/lock()/unlock()
ReentranReadWriteLock
可重入锁:对同一个对象可以多次加锁

三、底层

1.抽象同步队列三个核心组件:加锁状态(state)+加锁线程+等待队列
2.初始的时候

state = 0
加锁线程=null

3.加锁的过程

Thread1通过CAS对state进行加锁,先看state是否
    等于0==>state++,加锁线程=Thread1
    不等于0==>再看看是不是自己加的锁,不是自己加的锁,放入等待队列中;是自己加的锁,state++(这个时候就实现了可重入锁)

四、总结

AQS是JUC的一个基础组件,用来实现各种锁(ReentrantLock,ReentrantReadWriteLock),同步工具(Semaphone,CountDownLatch,CyclicBarrier).
他底层有三个核心组件:state,加锁线程,等待队列

AQS总结

标签:rac   unlock   同步队列   可重入   sync   同步   null   down   abs   

原文地址:https://www.cnblogs.com/yejiang/p/12618440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!