使用volatile變量能夠增長變量的可見性,使得每一個線程獲取該變量時,老是最新的。當一個變量沒有用volatile變量時,假設一個線程將變量值修改了,而後線程結束,這是另一個線程要讀取這個變量的時候,並不知道這個變量已經被改了,要保證變量的可見性,能夠採起同步的方式,也能夠用volatile聲明變量(使用volatile修飾變量時,變量不會被重排序)。安全
從內存可見性的角度上理解,至關於修改volatile變量時,退出同步代碼塊,讀取變量時,進入同步塊。spa
ps:使用volatile變量並不能線程安全,由於volatile只保證讀取的時候是最新的,可是在寫入的時候並無安全性。線程