在读ReentrantLock重入锁的源码读的不是很懂
1、我发现,当重入锁释放资源的时候是通过判断头节点的的waitStatus是否小于0小于0则释放该锁,但释放锁的时候,会将该头节点的waiteStatus设置为0标识该头节点,为一个无用的节点
2、当执行释放锁的动作时,如果发现当前线程因为某些原因被取消的时候,就会从链表的尾部,往前面找一个watStatus=-1的节点进行锁的释放
3、当将头节点设置为0之后,如果后面又有线程执行锁的释放该怎么办
4、当发现当前需要释放锁的线程被取消了之后,就从尾节点向前找一个节点进行释放,这样真的好吗,万一释放错了呢