{"blog_url":"https://yupo5656.hatenadiary.org/","height":"190","image_url":null,"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fyupo5656.hatenadiary.org%2Fentry%2F20040618%2Fp4\" title=\" \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u3068\u5171\u6709\u5909\u6570 (\u7d9a\u304d) -- \u88dc\u8db3 (2) - memologue\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","provider_url":"https://hatena.blog","width":"100%","author_name":"yupo5656","title":" \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u3068\u5171\u6709\u5909\u6570 (\u7d9a\u304d) -- \u88dc\u8db3 (2)","blog_title":"memologue","description":"Singleton\u3092\u5b9f\u88c5\u3059\u308b\u6642\u306a\u3069\u3067\u3001\u3044\u308f\u3086\u308b \"double checked locking\" \u3092\u4f7f\u3046\u306a\u3093\u3066\u5834\u5408\u306f\u3001memory sync \u306a\u95a2\u6570\u3092\u4f7f\u308f\u306a\u3044\u90e8\u5206\u304c\u51fa\u3066\u304f\u308b\u3067\u3057\u3087\u3046\u304b\u3089\u3001volatile \u3084\u3089 \u30b3\u30f3\u30d1\u30a4\u30e9\u56fa\u6709\u306e\u30e1\u30e2\u30ea\u30d0\u30ea\u30a2\u624b\u6cd5\u3084\u3089\u3092\u30ad\u30c3\u30c1\u30ea\u4f7f\u308f\u306a\u3044\u3068\u30c0\u30e1\u3067\u3059\u3088\u301c\u3002\u591a\u5206\u3002 \u53c2\u8003: The \"Double-Checked Locking is Broken\" Declaration http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html \u2192\u7d9a\u304d","published":"2004-06-18 00:00:03","type":"rich","url":"https://yupo5656.hatenadiary.org/entry/20040618/p4","categories":["C++"],"provider_name":"Hatena Blog","author_url":"https://blog.hatena.ne.jp/yupo5656/"}