• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            c++學習之---volatile和線程安全的singleton模式

            參考:http://www.cnblogs.com/rocketfan/archive/2009/12/05/1617759.html
            volatile:
            1.volatile的作用:
            (1) the content of a volatile variable is “unstable” (can change by means unknown to the compiler),

            (2) all writes to volatile data are “observable” so they must be executed religiously, and

            (3) all operations on volatile data are executed in the sequence in which they appear in the source code.
            1.被聲明為volatile的變量其內(nèi)容是不穩(wěn)定的(unstable),它的值有可能由編譯器所不能知曉的情況所改變。
            2.所有對聲明為volatile的變量的寫操作都是可見的,必須嚴格執(zhí)行be executed religiously。
            3.所有對聲明為volatile的變量的操作(讀寫)都必須嚴格按照源代碼的順序執(zhí)行。
            volatile確保每次直接從內(nèi)存讀取變量的值。java中的volatile是跨線程保證上述三個條件的,而C++只是單一線程內(nèi)保證。
            但是即使是JAVA能夠跨越線程保證,仍然是不夠的因為volatile和非volatile操作之間的順序仍然是未定義的,有可能產(chǎn)生問題,考慮下面的代碼:

            volatile int vi;

            void bar(void) {
            vi = 1;
            foo();
            vi = 0;
            }

            我們一般會認為vi會在調(diào)用foo之前設置為1,調(diào)用完后會被置為0。然而編譯器不會對你保證這一點,它會很高興的將你的foo()移位,比如跑到vi = 1前面,只要它知道在foo()里不會涉及到其它的volatile操作。所以安全的方法是用柵欄memory barrier例如“asm volatile (”" ::: “memory”)加到foo的前面和后面 來保證嚴格的執(zhí)行順序。內(nèi)存屏障保證代碼執(zhí)行時嚴格按照源代碼的的順序。

            posted on 2011-03-09 11:47 MrRightLeft 閱讀(773) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            <2011年3月>
            272812345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統(tǒng)計

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            91精品国产91久久久久久蜜臀| 久久天天躁狠狠躁夜夜不卡| 国产免费福利体检区久久| 久久国产精品波多野结衣AV | 欧美一区二区精品久久| 久久66热人妻偷产精品9| 日本一区精品久久久久影院| 久久久这里只有精品加勒比| 蜜桃麻豆www久久| 99蜜桃臀久久久欧美精品网站 | 亚洲精品蜜桃久久久久久| 2021精品国产综合久久| 伊人久久大香线蕉综合热线| 久久国产乱子精品免费女| 久久精品国产99国产精品导航| 国产2021久久精品| 国内精品久久九九国产精品| 亚洲中文久久精品无码ww16| 亚洲欧美成人久久综合中文网 | 亚洲国产欧美国产综合久久| 天天影视色香欲综合久久| 色综合久久中文色婷婷| 国产情侣久久久久aⅴ免费| 久久精品国产AV一区二区三区| 亚洲国产精品狼友中文久久久| 精品无码久久久久久久动漫| 青青草原综合久久| 久久最近最新中文字幕大全| 精品国产福利久久久| 久久亚洲国产欧洲精品一| 91精品国产乱码久久久久久| 国产精品久久99| 99久久精品无码一区二区毛片 | 精品久久久久久久中文字幕 | 国内精品久久久久国产盗摄| 91久久精品电影| 久久久噜噜噜久久| 亚洲国产成人精品91久久久 | 香港aa三级久久三级| 大蕉久久伊人中文字幕| 久久久精品波多野结衣|