作者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
1F:推 NDark: 他有点像保证强制写入 , 用在正确性等级需要非常高的地方 06/16 20:29
2F:→ NDark:有一些情况 执行绪 跟硬体IO的顺序不是直线可能会交错. 06/16 20:29
3F:→ ghostx2:一直有个疑问, 在一般.NET文章里提到的I/O有包含到 06/17 22:37
4F:→ ghostx2:记忆体R/W吗? 06/17 22:37