<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    1、volatile

    volatile字段的寫入操作happens-before于每一個后續(xù)的同一個字段的讀操作。

    因為實際上putremove等操作也會更新count的值,所以當競爭發(fā)生的時候,volatile的語義可以保證寫操作在讀操作之前,也就保證了寫操作對后續(xù)的讀操作都是可見的,這樣后面get的后續(xù)操作就可以拿到完整的元素內(nèi)容。

    使用建議:在兩個或者更多的線程訪問的成員變量上使用volatile。當要訪問的變量已在synchronized代碼塊中,或者為常量時,不必使用。


    volatile實際上只有在多cpu或者多核下才有用。當讀取數(shù)據(jù)時,他不會cache緩存中讀取,而是強制從內(nèi)從中讀取,這樣讀到的就是最新值。當寫入數(shù)據(jù)的時候,會直接將數(shù)據(jù)寫入內(nèi)存中,并刷新所有其他核中的緩存,這樣其他核看到的就是最新寫入的值,也就是說,其他線程就看到了最新寫入的值。

    一般說來,volatile用在如下的幾個地方:

    1、中斷服務(wù)程序中修改的供其它程序檢測的變量需要加volatile;

    2、多任務(wù)環(huán)境下各任務(wù)間共享的標志應(yīng)該加volatile;

    3、存儲器映射的硬件寄存器通常也要加volatile說明,因為每次對它的讀寫都可能由不同意義;


    聲明方式為  volatile declaration


    備注
    系統(tǒng)總是在 volatile 對象被請求的那一刻讀取其當前值,即使上一條指令從同一對象請求值。而且,該對象的值在賦值時立即寫入。

    volatile 修飾符通常用于由多個線程訪問而不使用 lock 語句來序列化訪問的字段。使用 volatile 修飾符能夠確保一個線程檢索由另一線程寫入的最新值。


    posted on 2015-01-18 21:08 abin 閱讀(388) 評論(0)  編輯  收藏 所屬分類: volatile

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日韩在线不卡免费视频一区| 久久久久久精品免费免费自慰| 99免费视频观看| 亚洲国产成人精品久久| 国产免费久久精品| 国产免费无码AV片在线观看不卡| 亚洲一区二区三区深夜天堂| 亚洲第一页综合图片自拍| 88av免费观看| 日本中文字幕免费看| 亚洲成人午夜电影| JLZZJLZZ亚洲乱熟无码| 免费看污成人午夜网站| 成人免费一区二区三区| 亚洲日本一线产区和二线产区对比 | 色偷偷噜噜噜亚洲男人| 亚洲AV无码精品无码麻豆| 国产在线观看www鲁啊鲁免费| 99re免费99re在线视频手机版| 国内成人精品亚洲日本语音| 亚洲精品午夜在线观看| 久久亚洲精品无码播放| 四虎影院免费在线播放| 国产91免费视频| 在线看片免费人成视频久网下载 | 久久精品夜色噜噜亚洲A∨| 久久久久久99av无码免费网站 | 99精品一区二区免费视频| 一级A毛片免费观看久久精品| 亚洲一级视频在线观看| 久久亚洲伊人中字综合精品| 亚洲A丁香五香天堂网| 午夜男人一级毛片免费| 五月亭亭免费高清在线| 午夜老司机永久免费看片| 一区二区免费在线观看| 色偷偷噜噜噜亚洲男人| 亚洲综合色一区二区三区| 亚洲制服丝袜在线播放| 亚洲邪恶天堂影院在线观看| 亚洲日本va在线视频观看|