Tag Archives | AQS

源码剖析AQS在几个同步工具类中的使用

1. 前言

AQS(AbstractQueuedSynchronizer)是 java.util.concurrent的基础。J.U.C中宣传的封装良好的好用的同步工具类SemaphoreCountDownLatchReentrantLockReentrantReadWriteLockFutureTask等虽然各自都有不同特征,但是简单看一下源码,每个类内部都包含一个如下的内部类定义:

AQS_hierachy

同时每个类内部都包含有这样一个属性,连属性名都一样!注释已经暗示了,该类的同步机制正是通过这个AQS的子类来完成的。不得不感叹:“每个强大的同步工具类,内心都有一把同样的锁!

几种同步类提供的功能其实都是委托sync来完成。有些是部分功能,有些则是全[......]

阅读全文

Tags: , , ,

Comments { 4 }