多线程环境中的单例类实现

时间:2011-02-28 13:48:07

标签: singleton

在多线程环境中,有50个并发线程正在访问单个对象。   它是否会导致性能问题,因为可能存在线程被阻塞,因为所有线程都会尝试访问单个实例?

2 个答案:

答案 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 
}