AQS-等待队列中的节点是怎么加入到对同步状态获取的竞争中的

关键代码如下: 第一个红框的代码会阻塞当前线程,第二个红框的代码会把节点加入到获取同步状态的竞争中。 这里的isOnSyncQueue(node)方法主要的作用就是判断节点是否在同步队列中,如果不在,返回fasle,就会在while循环中调用LockSupport.park(this)阻塞住当前线程,那线程什么时候会被唤醒,当然是当有持有锁的线程调用了signal()方法且该节点处于等待队列的首节
相关文章
相关标签/搜索