2017-12-28

synchronized和volatile

volatile僅能使用在變量級別;synchronized則可以使用在變量、方法、和類級別的。

volatile保證了變量的可見性,synchronized保證了原子性和可見性。

volatile

原理:首先我們要先意識到有這樣的現象,編譯器為了加快程序運行的速度,對一些變量的寫操作會先在寄存器或者是CPU緩存上進行,最后才寫入內存。而在這個過程,變量的新值對其他線程是不可見的,而volatile的作用就是使它修飾的變量的讀寫操作都必須在內存中進行。volatile告訴JVM, 它所修飾的變量不保留拷貝,直接訪問主內存中的。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容