首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:证明DCL不起作用

Java:证明DCL不起作用
EN

Stack Overflow用户
提问于 2018-02-07 14:02:48
回答 2查看 87关注 0票数 1

我想知道是否有可能可靠地证明双重检查的锁是坏的:

代码语言:javascript
复制
public static Singleton getInstanceDC() {
  if (_instance == null) {                // Single Checked
    synchronized (Singleton.class) {
      if (_instance == null) {        // Double checked
        _instance = new Singleton();
      }
    }
 }
 return _instance;
}

是否有任何可靠的方法来创建一个测试或程序,表明它不工作?有任何正式的验证证据吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-09 09:41:51

我找到了我正在寻找的东西:有一个名为强应力的java工具,它用于验证JVM的正确性。

更准确地说,DCL测试用例的源代码可以在这里找到:http://hg.openjdk.java.net/code-tools/jcstress/file/9270b927e00f/tests-custom/src/main/java/org/openjdk/jcstress/tests/singletons/UnsafeDCL.java#l71

我想说这是按规格证明的:)

票数 0
EN

Stack Overflow用户

发布于 2018-02-07 14:15:24

你见过这个DoubleCheckTest类吗?

这是一个测试用例,表明它不起作用。

我通过这个页面找到了这个例子。这个测试的作者是Paul。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48665787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档