我想知道是否有可能可靠地证明双重检查的锁是坏的:
public static Singleton getInstanceDC() {
if (_instance == null) { // Single Checked
synchronized (Singleton.class) {
if (_instance == null) { // Double checked
_instance = new Singleton();
}
}
}
return _instance;
}是否有任何可靠的方法来创建一个测试或程序,表明它不工作?有任何正式的验证证据吗?
发布于 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
我想说这是按规格证明的:)
发布于 2018-02-07 14:15:24
https://stackoverflow.com/questions/48665787
复制相似问题