指令重排序所帶來的問題及使用volatile關鍵字解決問題

首先看下如下代碼: 指令重排序和優化後代碼如下: if(!stop) while(true){} volatile最適合使用的是一個線程寫、其他線程讀的場合,如果有多個線程併發寫操作,仍然需要使用鎖或者線程安全的容器或者原子變量來代替。 當一個變量被volatile修飾後,它將具備以下兩種特性。· 線程可見性:當一個線程修改了被volatile修飾的變量後,無論是否加鎖,其他線程都可以立即看到最新
相關文章
相關標籤/搜索