posts - 15, comments - 8, trackbacks - 0, articles - 2

[转载] volatile的理解

Posted on 2009-12-14 10:55 小天狼星 阅读(110) 评论(0)  编辑 收藏 引用
MSDN Library中写到:

volatile 关键字表示字段可能被多个并发执行线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。[从这里可以看出,如果使用了该修饰符,则应该是每次都从内存中读取的,对吧!]

volatile 修饰符通常用于由多个线程访问而不使用 lock 语句(C# 参考)语句对访问进行序列化的字段。有关在多线程方案中使用 volatile 的示例,请参见如何:创建和终止线程(C# 编程指南)。

volatile 关键字可应用于以下类型:

引用类型。

指针类型(在不安全的上下文中)。

整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

具有整数基类型的枚举类型。

已知为引用类型的泛型类型参数。

IntPtr 和 UIntPtr。

所涉及的类型必须是类或结构的字段。不能将局部变量声明为 volatile。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理