背景知识:AQS维护的status的几个状态即含义; alt

cancelled:waitStatus值表示线程已经取消。
singal:waitStatus值,表示后继线程需要解除驻留。
condition:waitStatus值表示线程正在等待条件。
PROPAGATE:waitStatus值表示下一个被请求的对象应该无条件地传播。

alt

————————————————————————————————————————————————————

下面是上锁的全部过程:

alt