首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Java Double-Checked Locking 已死,C++ 呢

2012-08-28 
Java Double-Checked Locking 已死,C++ 呢?已经有众多文章讨论 double-checked locking 模式在 Java 下面

Java Double-Checked Locking 已死,C++ 呢?

已经有众多文章讨论 double-checked locking 模式在 Java 下面无法正常工作,这里先简要的总结一下。

根本原因在于 Java 的 memory model 允许所谓的 out-of-order write ,对于下面的 Java 代码,out-of-order write 可能导致灾难性的结果

class SingletonTest{private static SingletonTest instance;private SingletonTest{}private static class Instance//嵌套类只加载一次。{static fianl SingletonTest Instance=new SingletonTest();}public static SingletonTest(){return Instance.instance;}}
?

?

热点排行