对象锁锁住的是synchronized修饰的代码块或者方法,注意这其中是锁不住对象里的属性的,所以会出现LZ实验的情况。
如果你把synchronized放在方法上,那么a方法和b方法就是互斥的,因为对象锁会把这两个方法都锁住。
个人理解,有不对之处还请指正