volatile原理及使用場景

  以前一直困惑於volatile到底有什麼功能、怎麼使用。多方搜索資料,終於理清了頭緒,記錄一下。 首先,volatile有兩個作用:(1)保證變量的可見性(2)防止指令重排序。這兩個作用都是通過設置內存屏障實現的。 防止指令重排序這個很好理解,對一個變量可能有多種操作,如果使用操作在賦值操作之前發生,就會導致數據錯誤甚至空指針等問題。 一直以來最困惑的還是第(1)個作用,volatile是怎麼
相關文章
相關標籤/搜索