抽象队列同步器

AQS 原理

1、AbstractQueuedSynchronizer

2、阻塞式锁、相关的同步器工具的框架

3、state 属性表示资源的状态

(1)子类需要定义如何维护这个状态,控制如何获取锁、释放锁

(2)getState:获取 state 状态

(3)setState:设置 state 状态

(4)compareAndSetState:CAS 机制设置 state 状态

(5)独占模式:只有一个线程能够访问资源

(6)共享模式:允许多个线程访问资源

4、提供基于 FIFO 的等待队列,类似于 Monitor 的 EntryList

5、条件变量来实现等待、唤醒机制,支持多个条件变量,类似于 Monitor 的 WaitSet

6、子类主要实现方法(默认抛出 UnsupportedOperationException)

(1)tryAcquire

(2)tryRelease

(3)tryAcquireShared

(4)tryReleaseShared

(5)isHeldExclusively

posted @   半条咸鱼  阅读(15)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示