首页 > 编程语言> > 那么h!=null进入,但是头节点的waitStatus还是0,所以不走unpark,A线程结束 A线程结束了谁来唤醒B线程呢? 回到acquireQueued方法 java
那么h!=null进入,但是头节点的waitStatus还是0,所以不走unpark,A线程结束 A线程结束了谁来唤醒B线程呢? 回到acquireQueued方法 java
作者:互联网
final boolean acquireQueued(final Node node, int arg) { boolean failed = true; try { boolean interrupted = false; for (;;) { final Node p = node.predecessor(); if (p == head && tryAcquire(arg)) { setHead(node); p.next = null; // help GC failed = false; return interrupted; } if (shouldParkAfterFailedAcquire(p, node) && parkAndCheckInterrupt()) interrupted = true; } } finally { if (failed) cancelAcquire(node); } }
原材料https://www.cnblogs.com/sunankang/p/16458795.html
欢迎技术交流,感兴趣的可以加群
标签:node,waitStatus,interrupted,failed,acquireQueued,boolean,线程,final 来源: https://www.cnblogs.com/huangjiangyong/p/16459244.html