unlock()唤醒其它线程对应底层源码如下所示:
node为阻塞队列的头节点,s为头节点的后继节点,当后继节点为空或者后继节点的等待状态为CANCELLED时,则从阻塞队列的尾部开始一直往前找,找所有状态不是CANCELLED的节点,唤醒离头节点最近的节点线程。
unlock()唤醒其它线程对应底层源码如下所示:
node为阻塞队列的头节点,s为头节点的后继节点,当后继节点为空或者后继节点的等待状态为CANCELLED时,则从阻塞队列的尾部开始一直往前找,找所有状态不是CANCELLED的节点,唤醒离头节点最近的节点线程。