AQS
2019-09-20 11:27:20 0 举报
AQS
作者其他创作
大纲/内容
Condition接口
ConditionObject implements Condition
public final void await()public final void signal() public final void signalAll()
Node
CountDownLatchSync extends AbstractQueuedSynchronizer
AbstractQueuedLongSynchronizer
AbstractQueuedSynchronizer
SemaphoreSync extends AbstractQueuedSynchronizer
存储当前获取锁的线程private transient Thread exclusiveOwnerThread;
AbstractOwnableSynchronizer
ConditionObject
volatile int waitStatus;volatile Node prev;volatile Node next;volatile Thread thread;Node nextWaiter;
ReentrantLockSync extends AbstractQueuedSynchronizer
private transient volatile Node head; private transient volatile Node tail;private volatile int state;
state来表示同步状态,当state>0时表示已经获取了锁,当state = 0无锁。
await()都干了什么事1、将当前线程Node挂到队列上2、释放锁【将exclusiveOwnerThread置为NULL】【将state置为0】3、LockSupport.park(this);阻塞当前线程-----当
0 条评论
下一页