1.对象锁钥匙只能有一把才能互斥,才能保证共享变量的唯一性 2.在静态方法上的锁,和 实例方法上的锁,默认不是同样的,如果同步需要制定两把锁一样. 3.关于同一个类的方法上的锁,来自于调用该方法的对象,如果调用该方法的对象是相同的,那么锁必然相同,否则就不相同.比如 new A().x() 和 new A().x(),对象不同,锁不同,如果A的单利的,就能互斥. 4.静态方法加锁,能和所有其他静态方法加锁的 进行互斥 5.静态方法加锁,和xx.class 锁效果一样,直接属于类的 转载:http