1.ReentrantLock,加锁时阻塞队列模型
说明: 当往队列里面添加完节点后,队列的waitStatus变化,及其队列自身变化
如果新添加的节点的前驱节点是处于取消状态,则会把这样相邻的处于取消状态的节点移除
如果新添加的节点的前驱节点waitStatus=0,则需要把其修改为-1,即SIGNAL状态
同步队列的头节点,可以理解为正在占有锁的线程
2.ReentrantLock,释放锁时阻塞队列模型
锁释放成功后,阻塞队列中头节点不为NULL,并且其waitStatus != 0,才会唤醒后继结点