八个锁问题 当多个线程访问同一个对象的synchronized方法时,可能会产生八种不同的锁问题: 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是synchronized括号里配置的对象。 对于一个普通方法,即非同步方法,不会产生锁问题,不需要等待锁,直接访问方法即可。 对于一个静态方法,即使非同步方法,也会存在锁问题。因为静态方法是属于类的,而不是属于实例的,所以静态方法的锁是当前类的Class对象。 当一个线程执行的代码出现异常时,锁会被自动释放。 s…