Java並發編程之volatile變數

來源:互聯網
上載者:User

標籤:

volatile提供了弱同步機制,用來確保將變數更新通知到其它線程。volatile變數不會被緩衝在寄存器中或者對其它處理器不可見的地方,因此在讀取volatile變數時總會返回最新寫入的值。可以想象成如下語義,然而volatile是更輕量級的同步機制。volatile只能確保可見度,但不能保證原子性。也就是說不能在複合操作用volatile變數,比如i++。
 

    public synchronized void setValue(int value){

    this.value = value;

    }

    public synchronized int getValue(){

    return value;

    }

當滿足以下條件所有條件,才能使用volatile變數
  • 對變數的寫入操作不依賴變數的當前值,或者你能確保只有單個線程更新變數值。

  • 該變數不會與其他狀態變數一起納入不變性條件

  • 在訪問變數是不需要加鎖



來自為知筆記(Wiz)

Java並發編程之volatile變數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.