首页 > 其他 > 详细

cas aqs lock之间的关系

时间:2018-12-30 12:01:44      阅读:185      评论:0      收藏:0      [点我收藏+]

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之间的关系

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!