[英]What are the differences between the volatile in c# and java?
在一些.net文檔中,我讀到了編譯器如何處理volatile的方法:
這些圍欄適用於編譯器級別和體系結構級別。
當然,VC ++的主要區別是,防護僅在編譯器級別應用。
所以我的問題是,Java中volatile的防止內存重新排序的語義是什么?
轉換:
柵欄=柵欄柵欄=柵欄
參考文獻:
Joe Duffy(Windows上的並發編程)
在Java中, javac
編譯器javac
不使用volatile。 它不會重新排序語句,並且幾乎不會進行優化。
另一方面,JIT可以進行很多優化和重新排序。
volatile
的重要特征是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.