【发布时间】:2014-03-06 08:34:53
【问题描述】:
这是MSDN 对volatile 的评价:
volatile 关键字表示一个字段可能被 同时执行的多个线程。是的字段 声明的 volatile 不受编译器优化的影响 假设由单个线程访问。这可确保最 字段中始终存在最新值。
volatile 关键字可以应用于以下类型的字段: 引用类型。
此状态意味着默认情况下引用类型的字段不是易失性的。
我认为可以将引用类型字段视为包含对象地址的值类型字段。然后它变成类似于int 类型。乔·阿尔巴哈里gives some examples.
但是!... 与通常的值类型不同,GC 在压缩堆并相应地更改引用时将对象移动到内存中。因此,“最新值”必须始终存在。如果是这样,波动性的概念如何应用于引用类型?
【问题讨论】:
标签: c# .net multithreading volatile