AbstractQueuedSynchronizer::signalNext源码笔记

signalNext函数的作用为通知指定节点的后继节点结束等待状态

static final int WAITING   = 1;          // must be 1
static final int CANCELLED = 0x80000000; // must be negative
static final int COND      = 2;          // in a condition wait


// 通知h的后继节点s结束等待状态
private static void signalNext(Node h) {
    Node s;
    if (h != null && (s = h.next) != null && s.status != 0) {
        s.getAndUnsetStatus(WAITING);
        LockSupport.unpark(s.waiter);
    }
}

 

posted @ 2021-03-31 15:04  榆木脑袋0v0  阅读(71)  评论(0)    收藏  举报