1.lock()方法主要是使用sync调用release()方法;这个方法,不像之前acquire方法那样可能会出现不同得方法,release()方法是AQS的方法。 尝试释放锁,如果释放锁成功,则唤醒下一个等待的线程; tryRelease()主要是把资源被重入的次数依次减掉,如果当前的线程不是独占锁的线程,那么意味着出错了,于是抛出异常; 定义一个布尔量为free,并且为false,表示此时资源还没被释放。接着定义了一个c== 0,那么表示没有线程占用资源,就把free改为true,并且把独占线程我设置为null;,最后把status设置为0,表示资源被释放调了; 接着奏if语句后面的...