如果A类的公共静态方法被'synchronized'关键字标记,那么是否有可能进行类级锁定?
当这样的类中有锁时,我们可以实例化该类的对象,还是与实例化无关?
答案 0 :(得分:4)
如果A类具有标记的公共静态方法 'synchronized'关键字,那么是否有可能上课 水平锁?
是的,A类会有一个级别锁定。
当这样的类中有锁时,我们可以实例化该类的对象,还是与实例化无关?
当静态方法存在锁定时,它仅影响其他同步静态方法。您仍然可以创建该类的新实例。
答案 1 :(得分:3)
是的,锁定将保留在Class对象上。
引自Locks In Synchronized Methods
您可能想知道在调用静态同步方法时会发生什么,因为静态方法与类相关联,而不是与对象相关联。在这种情况下,线程获取与该类关联的Class对象的内部锁。因此,对类的静态字段的访问由与该类的任何实例的锁不同的锁控制。
答案 2 :(得分:2)
尝试执行同一个类的另一个静态同步方法的所有其他线程,或者在此Class
实例上同步的任何其他方法都将被阻止。