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

cas aqs lock之间的关系

时间:2018-12-30 12:09:26      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:框架   pool   xxx   代码   executor   map   count   src   关系   

CAS

  对应cpu的硬件指令, 是最原始的原子操作

  cas主要是在AtomicInteger   AtomicXXX类的实现中, 用于实现线程安全的自增操作 ++.  对应一个unsafe对象, 根据os平台的不同,操作cpu指令c++代码有少许不同

AQS

全称是AbstractQueuedSynchronizer, 它是基于cas的锁同步框架,这个类是抽象的,其中有1个状态统计变量stateOffset是使用cas来操作的,
具体实现类都使用这个状态变量,达到各自锁的操作
技术分享图片

下图中可以看到ReentrantLock, ReentrantReadWriteLock, Semaphore, CountDownLatch,ThreadPoolExecutor中都有一个内部类实现了AQS

@see 《JAVA并发编程实践》
技术分享图片

cas aqs lock之间的关系

标签:框架   pool   xxx   代码   executor   map   count   src   关系   

原文地址:https://www.cnblogs.com/yszzu/p/10198904.html

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