它是Java单例类的漏洞吗?

时间:2013-11-09 09:29:53

标签: java

java中的Singleton类意味着只能初始化一次的类,所有类都将使用相同的对象。每个人只能创建一个对象。但我的问题是,当多个线程同时初始化同一个对象时会发生什么?会有两个或更多的物体吗?我们怎么能限制这个?

1 个答案:

答案 0 :(得分:2)

  

但我的问题是当有多个线程时   同时初始化同一个对象将会发生什么   那里?会有两个或更多的物体吗?我们怎么能限制这个?

实现它的多种方法:

  1. 同步可用于控制在多线程环境中为单例类创建多个对象。

  2. 使用静态块在类加载期间创建单例对象。

  3. Wiki描述了在考虑多线程环境的情况下以极好的方式编写Singleton类的方法。

    http://en.wikipedia.org/wiki/Singleton_pattern