ReentrantLock 中的FairSync实现基本流程图如下:
lock() 与 lockInterruptibly()比较就是,
lock是在Park Self之后, 一旦醒来如果是被中断过的只是简单的做个标记,等真正拿到锁了,才会去处理中断信息。
lockInterruptibly是在Park Self之后,一旦醒来如果发现被中断过,直接throw InterruptedException。
ReentrantLock 中的FairSync实现基本流程图如下:
lock() 与 lockInterruptibly()比较就是,
lock是在Park Self之后, 一旦醒来如果是被中断过的只是简单的做个标记,等真正拿到锁了,才会去处理中断信息。
lockInterruptibly是在Park Self之后,一旦醒来如果发现被中断过,直接throw InterruptedException。