在多线程环境中,有50个并发线程正在访问单个对象。 它是否会导致性能问题,因为可能存在线程被阻塞,因为所有线程都会尝试访问单个实例?
答案 0 :(得分:2)
并发访问不会成为问题。但是你必须小心这种访问的同步。即(我假设我们谈论java)
class MySingletonFactoryClass
{
public static MySingleton getInstnace()
{
synchronized(MySingletonFactoryClass.class) {
if(instance == null)
instance = new MySingleton();
return instance;
}
}
}
答案 1 :(得分:0)
不存在性能问题,您不需要同步任何内容,也不需要以任何方式进行包装,只需按照常规推荐方式实现:
public class MySingleton {
private static MySingleton _instance;
private MySingleton() {
//initialize it here
}
public static MySingleton getInstance() { return _instance; }
//other methods of the class here
}