【发布时间】:2014-07-01 07:25:33
【问题描述】:
我注意到有趣(令我惊讶)的行为:
public void m(){
int primitive=1;
synchronized (primitive) {
}
}
此代码生成以下内容:
int is not a valid type's argument for the synchronized statement
你能解释一下为什么吗?
【问题讨论】:
-
因为它需要一个对象。
-
具体来说,该副本如何回答问题:
monitorenter接受一个对象。基元不是对象。 JVM 无法在它们上同步。 -
那个重复链接到一个非常好的页面:javaworld.com/article/2076971/java-concurrency/…
-
@hyde 这绝对是另一个问题
标签: java multithreading concurrency primitive critical-section