java實現變量的可見性

可見性就是當一個線程修改了共享變量的值,其他線程能夠立即得知這個修改。java內存模型在變量修改後將新的變量值同步回主內存,在其他線程讀取該變量之前從主內存刷新變量值來實現可見性。

主要實現可見性的方式有三種:

  1. volatile,注意一點 volatile不能保證操作的原子性。
  2. synchronized,在對一個變量進行unlock操作之前,必須把變量值同步回主內存。
  3. final,被final關鍵字修飾的變量在構造器中一旦初始化完成,並且沒有發生 this 逃逸(其他線程通過this引用訪問到初始化了一半的對象),那麼其他線程就能看見final字段的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章