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

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

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

    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    volatile 與 synchronized 區別

    Posted on 2012-12-01 21:19 云云 閱讀(13708) 評論(0)  編輯  收藏

    在Java中,為了保證多線程讀寫數據時保證數據的一致性,可以采用兩種方式:

    同步

    如用synchronized關鍵字,或者使用鎖對象.

    volatile

    使用volatile關鍵字
    用一句話概括volatile,它能夠使變量在值發生改變時能盡快地讓其他線程知道.

    volatile詳解

    首先我們要先意識到有這樣的現象,編譯器為了加快程序運行的速度,對一些變量的寫操作會先在寄存器或者是CPU緩存上進行,最后才寫入內存.
    而在這個過程,變量的新值對其他線程是不可見的.而volatile的作用就是使它修飾的變量的讀寫操作都必須在內存中進行!

    volatile與synchronized

      volatile本質是在告訴jvm當前變量在寄存器中的值是不確定的,需要從主存中讀取,synchronized則是鎖定當前變量,只有當前線程可以訪問該變量,其他線程被阻塞住.
      volatile僅能使用在變量級別,synchronized則可以使用在變量,方法.
      volatile僅能實現變量的修改可見性,但不具備原子特性,而synchronized則可以保證變量的修改可見性和原子性.
      volatile不會造成線程的阻塞,而synchronized可能會造成線程的阻塞.
      volatile標記的變量不會被編譯器優化,而synchronized標記的變量可以被編譯器優化.

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品成人久久| 日韩免费视频一区二区| 91精品全国免费观看含羞草| 日韩免费高清视频| 亚洲欧洲久久久精品| 91嫩草私人成人亚洲影院| 亚洲 欧洲 视频 伦小说| 国产亚洲人成在线影院| 24小时日本在线www免费的| 亚洲精品国产精品乱码视色| 特级毛片爽www免费版| 亚洲欧洲久久久精品| 人人爽人人爽人人片av免费| 免费大学生国产在线观看p| 无码精品人妻一区二区三区免费| 四虎永久在线免费观看| 无码AV动漫精品一区二区免费| 四虎永久在线精品免费影视 | 亚洲综合小说另类图片动图| 亚洲高清视频免费| 亚洲理论片中文字幕电影| 国产免费毛不卡片| 亚洲天然素人无码专区| 久久99九九国产免费看小说| 国产成人不卡亚洲精品91| 国产精品亚洲mnbav网站| 最近2019中文字幕免费大全5| 久久精品国产亚洲精品2020| 国内自产拍自a免费毛片| 亚洲国产免费综合| 亚洲人成www在线播放| 亚洲国产成人久久综合区| 在线观看特色大片免费网站| 亚洲av产在线精品亚洲第一站| 凹凸精品视频分类国产品免费| 曰批全过程免费视频网址| 亚洲国产综合在线| 国产精品亚洲综合一区| 91在线视频免费播放| 免费观看久久精彩视频| 曰批免费视频播放免费|