而所有的静态同步方法用的也是同一把锁——类对象本身,这两把锁是两个不同的对象,所以静态同步方法与非静态同步方法之间是不会有竞态条件的。但是一旦一个静态同步方法获取锁后,其他的静态同步方法都必须等待该方法释放锁后才能获取锁,而不管是同一个实例对象的静态同步方法之间,还是不同的实例对象的静态同步方法之间,只要它们同一个类的实例对象!
可以。Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。
Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)