【发布时间】:2014-02-04 09:38:01
【问题描述】:
synchronized(classname.class) vs synchronized(this) vs synchronized(AnyObjectName) 有什么区别?
当同步块只需要任何对象时,为什么这三个都会产生不同的答案?
【问题讨论】:
-
他们根本不产生答案 - 他们获得监视器,但他们会获得不同的监视器,因为它们是不同的参考。你需要很多清楚你在问什么。
-
当我在这三个类中添加一个自增运算符时,它们应该会产生相同的结果
-
信息还不够。我们不知道您是否有多个线程试图增加相同的变量,这些变量可能会或可能不会被每个同步块保护。
标签: java multithreading