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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    Volatile修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。這樣在任何時刻,
    兩個不同的線程總是看到某個成員變量的同一個值。
    
    Java語言規范中指出:為了獲得最佳速度,允許線程保存共享成員變量的私有拷貝,而且只當線程進入或者離開同步代碼塊時才與共享成員變量的原始值對比。
    
    這樣當多個線程同時與某個對象交互時,就必須要注意到要讓線程及時的得到共享成員變量的變化。
    
    而volatile關鍵字就是提示VM:對于這個成員變量不能保存它的私有拷貝,而應直接與共享成員變量交互。
    
    使用建議:在兩個或者更多的線程訪問的成員變量上使用volatile。當要訪問的變量已在synchronized代碼塊中,或者為常量時,不必使用。
    
    由于使用volatile屏蔽掉了VM中必要的代碼優化,所以在效率上比較低,因此一定在必要時才使用此關鍵字。 
    
    
    就跟C中的一樣 禁止編譯器進行優化~~~~
    在并發中可保證內存一致性
    volatile聲明的變量只在主存中存儲
    讀取的時候,會有讀取臟數據的情況發生
    但是寫數據的時候,是能保證數據能正確寫入

    volatile只保證每次都從主存拿數據,其他保證不了什么吧?
    告訴編譯器不要使用緩存

    非long、double變量不能保證原子性,非volatile變量不能保證內存可見性。

    volatile 還能防止reorder...
    就是內存屏蔽,防止指令重拍
    其實目的就是保證可見性
    可以操作volatile...變量 但是不代表你的操作指令是原子的








    posted on 2012-10-18 10:38 abin 閱讀(340) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
    主站蜘蛛池模板: 亚洲午夜福利精品久久| 又粗又大又猛又爽免费视频| 国产亚洲综合色就色| 国产成人1024精品免费| 亚洲国产成人精品女人久久久 | 国产精品公开免费视频| 亚洲一卡2卡3卡4卡乱码 在线| 美女视频黄a视频全免费| 亚洲AV无码精品蜜桃| 好大好深好猛好爽视频免费| 色欲色欲天天天www亚洲伊| 内射无码专区久久亚洲| 又黄又大的激情视频在线观看免费视频社区在线 | 97性无码区免费| 国产精品亚洲精品青青青| 大香人蕉免费视频75| 特级av毛片免费观看| 国产亚洲一区二区在线观看| 69免费视频大片| 亚洲成AV人影片在线观看| 亚洲天堂中文字幕在线| 久操视频免费观看| 亚洲人成网站在线观看播放动漫 | 1a级毛片免费观看| 最新国产成人亚洲精品影院| 国产精品极品美女免费观看| ww在线观视频免费观看w| 亚洲国产高清视频| 成年女人毛片免费观看97| 日韩精品无码免费视频| 亚洲短视频男人的影院| 成人免费无码大片A毛片抽搐| 黄色一级毛片免费看| 亚洲成色在线影院| 女人被弄到高潮的免费视频| 国产免费一级高清淫曰本片| 久久亚洲AV无码精品色午夜麻豆| 老司机永久免费网站在线观看| h视频在线观看免费| 亚洲伊人久久大香线蕉啊| 久久伊人亚洲AV无码网站|