第三种解决方法 使用Lock锁: Java.util.concurrent.locks.lock接口 比synchronized更先进一些 lock接口的方法 void Lock(); 获取锁 void unLock(); 释放锁 因为是Lock接口所以有实现类 java.util.concurrent.locks.ReentrantLock implements Lock 使用步骤: 1.在成员位置创建一个ReentrantLock对象 2.在可能会出现安全问题的代码前调用Lock接口中的方法lock获取锁 3.在可能会出现安全问题的代码后面调用Lock接口中的方法unLock释放锁
加finall
无论程序是否异常都会把锁释放,可以提高程序的效率