决战圣地玛丽乔亚Day29

今日目标(AQS):

AQS(抽象队列同步器):

相当于实现锁的一系列模板方法。

如果要实现锁,需要:

1.锁是否被占用的状态值。

2.阻塞/唤醒

3.竞争失败的队列

AQS中:

state:状态信息,不同的锁的用途不同

Node:阻塞队列等的节点信息(pre,next,thread)都是用volatile进行修饰。thread直接放入队列不好,用节点来代替。

阻塞唤醒:使用LockSupport中的工具类方法

当前持有锁的线程:使用了抽象类AbstractOwnableSynchronizer,进行getset

 

posted @ 2023-03-09 23:29  NobodyHero  阅读(13)  评论(0)    收藏  举报