获取锁的过程:
acquire ()申请锁资源时,如果成功,它将进入临界区
当获取锁失败时,它进入一个 FIFO 等待队列并被阻塞,等待唤醒
当队列中的等待线程被唤醒时,会再次尝试获取锁资源。...如果成功,它进入临界区,否则它将继续阻塞,等待唤醒
释放锁过程:
当线程调用release()来释放锁资源时,如果没有其他线程在等待锁资源,那么释放就完成了。...如果队列中有其他正在等待锁资源的线程需要被唤醒,则队列中的第一个等待节点(FIFO)将被唤醒。...,则它继续挂起,因为中断已经被清除,并且如果下一次是正常的。...当锁被释放时,如果队列中有等待的线程,锁就会被唤醒。