对象锁:同步方法锁住的是对象
A.一个对象+有多个synchronized方法:某一时刻内,只要有一个线程去调用其中一个synchronized 方法,其他的线程都要等待。
B.一个对象中+synchronized方法+非synchronized方法:某个线程访问同步方法不影响其他线程访问非同步方法
C.多个对象+多个同步方法:访问不同的对象的同步方法不会相互影响
全局锁:静态同步方法锁的是当前的Class对象
A.同一个类的一个对象或多个对象+一个或多个静态同步方法:只要调用一个静态同步方法,其他的静态同步方法就不能用了,因为锁住的是整个类
B.静态同步方法和同步方法之间不存在竞争关系,调用静态同步方法和同步方法不会相互影响