【发布时间】:2014-11-11 04:38:20
【问题描述】:
我的问题几乎等同于这个What is a class level lock in java
但这是一个后续问题。
实例级锁定通过锁定实例/对象的关联监视器来工作,但在类级锁定的情况下,谁扮演监视器的角色?隐式锁定是如何工作的?
谢谢你
【问题讨论】:
-
将锁定视为“类级别”或“对象级别”只会分散您对锁定真正含义的注意力。当您编写
synchronized时,您应该考虑您的代码在哪个对象上同步,以及线程在该对象上同步在您的程序中意味着什么。当您在类 Foo 的静态方法上添加synchronized作为声明说明符时,这与在方法主体中编写synchronized (Foo.class) { ... }相同。在 Foo.class 上同步时,允许线程执行什么操作完全由您决定。 -
不,锁定的真正含义是毫无疑问的。我的疑问是在类级别锁定的情况下实际被锁定的内容。谢谢你的时间。
-
对不起,有时我假设太多了。
标签: java multithreading static synchronization