【发布时间】:2013-04-10 15:51:55
【问题描述】:
像这样实现单例模式的类的每个方法都需要使用 synchronize 关键字吗?
public class Singleton {
private Singleton(){}
public synchronized static Singleton getInstance()
{
if(instance == null)
instance = new Singleton ();
return instance;
}
public void DoA(){
}
}
由于 Singleton 不公开公共构造函数并且 getInstance() 方法是同步的,因此不需要同步方法 DoA 和 Singleton 类公开的任何其他公共方法。
这个推理正确吗?
【问题讨论】:
-
En 一般同步取决于您是否访问方法中的共享数据。
-
我不这么认为,如果 getInstance 是同步的。这并不意味着 DoA 是同步的。也是。
-
如果您在 DoA 方法上改变可共享状态,那么是的,它可能仍需要同步。该方法有什么作用?
-
这跟单身没关系
标签: java synchronization singleton