队列同步器AbstractQueuedSynchronizer,是用来构建锁或者其他同步组件的基础框架,它使用一个int成员表示同步状态,通过内部的FIFO队列来完成资源获取线程的排序工作。
一、AQS的设计
AQS的设计是基于模板方法模式的,也就是说,使用者需要继承AQS并重写指定的方法,随后将AQS组合在自定义同步组件的实现中,并调用AQS提供的模板方法,而这些模板方法将会调用使用者重写的方法。
private volatile int state;
AQS使用一个int的成员变量来表示同步状态。
protected final void setState(int newState) { state = newState; }
setState方法用来设置同步状态
protected final int getState() { return state; }
getState方法用来获取同步状态

本文介绍了Java中的AbstractQueuedSynchronizer(AQS),它是构建锁和其他同步组件的基础。AQS使用一个int同步状态和FIFO队列来管理资源获取线程。内容包括AQS的设计模式、同步状态的设置与获取、同步队列的节点属性、等待状态以及同步队列的操作,如节点的加入和设置首节点。
最低0.47元/天 解锁文章
753

被折叠的 条评论
为什么被折叠?



