【发布时间】:2011-07-10 17:54:26
【问题描述】:
我想知道如果在静态方法上使用同步会发生什么。该类是否锁定了该方法?这与非静态方法上的同步有什么不同?
谢谢
【问题讨论】:
-
同步静态方法锁定类,而不是对象。 download.oracle.com/javase/tutorial/essential/concurrency/…
标签: java concurrency
我想知道如果在静态方法上使用同步会发生什么。该类是否锁定了该方法?这与非静态方法上的同步有什么不同?
谢谢
【问题讨论】:
标签: java concurrency
This question 对上述问题有很多高质量的答案。
【讨论】:
是的,类“获取”锁而不是实例(正如布鲁诺指出的那样,这个术语并不精确。线程使用类对象或实例作为锁定对象来获取锁)。这意味着,如果这些方法在它们各自的实例上同步,则可以有 3 个线程同时执行 3 个同步方法。如果方法在类上同步,那么只有一个线程可以执行它。
【讨论】: