AbstractQueuedSynchronizer::release源码笔记
public final boolean release(int arg) { if (tryRelease(arg)) { // 注意,这里signalNext的参数为head,即头结点 // 也就是说线程释放锁后总是会激活等待队列中的第一个节点 signalNext(head); return true; } return false; }
public final boolean release(int arg) { if (tryRelease(arg)) { // 注意,这里signalNext的参数为head,即头结点 // 也就是说线程释放锁后总是会激活等待队列中的第一个节点 signalNext(head); return true; } return false; }