并发编程

​ 并发编程

AQS(AbstractQueuedSynchronizer)翻译为抽象队列同步器,是除Synchronized关键字外java自带的锁机制。

AQS使用一个int类型变量state来表示线程要竞争的资源,state的值即为可获取的资源数,当一个线程尝试获取锁时,会使用CAS方式去尝试改变state的值,如果改变成功,即获取了锁。CAS的实现是使用了Unsafe类底下的一系列compareAndSet*方法,这些方法调用了JAVA的native方法,可以认为是系统底层支持的原子操作.