【发布时间】:2013-11-22 20:05:15
【问题描述】:
考虑以下场景。
public synchronized String getData(){
return getInfo();
}
private String getInfo(){
// operation here should synchronized
return "Synchronize Info";
}
如果有人绕过这个操作的流程。系统可能会变得不稳定,如果Java编译器强制使getInfosynchronized这样的问题就不存在了。但是 Java 编译器并不强制这样做。现在开发人员应该负责是否制作getInfo synchronized。为什么 Java 不强制生成 getInfo synchronized ?
【问题讨论】:
-
同步是有代价的。
-
@frostjogla 谁说编译器写代码?如果您不知道,请不要理会它。换个角度看比写东西要好。
-
如果从
getData()调用,getInfo()将被同步。或者您是在问如果有人在getData()之外拨打getInfo()会发生什么? -
@Boann 是的,我的问题是当有人在外面呼叫
getInfo()时,会导致系统不稳定。
标签: java synchronized