請你談談對volatile的理解

  1. 所在包:java.util.concurrent`---> `AtomicInteger`  `Lock` `ReadWriteLock
  2. volatile是java虛擬機提供的輕量級的同步機制
  3.  做用:保證可見性、不保證原子性、禁止指令重排
    原子性:不可分割、完整性,即某個線程正在作某個具體業務時,中間不能夠被加塞或者被分割,須要總體完整,要麼同時成功,要麼同時失敗
    
    驗證示例(變量添加volatile關鍵字,方法不添加synchronized)
    可見性:當多個線程訪問同一個變量時,一個線程修改了這個變量的值,其餘線程可以當即看到修改的值
    指令重排:有序性:在計算機執行程序時,爲了提升性能,編譯器和處理器經常會對指令作重排
相關文章
相關標籤/搜索