作者ghostx2 (Ghostx2)
看板C_Sharp
標題[問題] Volatile正確用法?
時間Sun Jun 16 19:17:57 2013
對volatile修飾詞用法一直抱持疑惑
網路討論總結以下幾點
1.用於多執行緒但非lock之field
2.不完全線程安全, 非原子操作
3.不接受編譯器優化變數, 變數隨時保持與記憶體相同數據
不會存取到暫存器數據, 以保持數據為最新狀態
找到許多文章都是關於C/C++或是嵌入式系統討論
關於C#的頗少, MSDN講得又讓人看不懂
請問C#真有什麼情況下真有必要用這個修飾詞嗎?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.238.99
推 NDark: 他有點像保證強制寫入 , 用在正確性等級需要非常高的地方 06/16 20:29
→ NDark:有一些情況 執行緒 跟硬體IO的順序不是直線可能會交錯. 06/16 20:29
→ ghostx2:一直有個疑問, 在一般.NET文章裡提到的I/O有包含到 06/17 22:37
→ ghostx2:記憶體R/W嗎? 06/17 22:37