原文地址:http://www.zhihu.com/question/36771163 (一) lock()方法获取锁.如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1.如果当前线程已经保持该锁,则将保持计数加 1,并且该方法立即返回.如果该锁被另一个线程保持,则出于线程调度的目的,禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态,此时锁保持计数被设置为 1. (二) lockInterruptibly()方法获取锁.1) 如果当前线程未被中断,则获取锁.2)