相关疑难解决方法(0)

793
推荐指数
17
解决办法
30万
查看次数

在java中使用不可变类的单例

class MyClass
{
  private static volatile Resource resource;

  public static Resource getInstance()
  {
            if(resource == null)
                      resource = new Resource();
            return resource;
  }
}
Run Code Online (Sandbox Code Playgroud)

这里如果Resource是一个不可变类,编写上面的代码是否安全?正如在实践中的java并发中所提到的那样,"初始化安全性允许在线程之间安全地共享正确构造的不可变对象.因此上述代码可以安全地编写." (第349页第16.3页).但是有了这个可能,如果两个线程检查null并且它们可以继续进行对象创建,这是针对类的不变量(单例).请解释.链接中问题的延续

java concurrency

3
推荐指数
1
解决办法
1234
查看次数

标签 统计

java ×2

concurrency ×1

design-patterns ×1

singleton ×1