原创 “volatile” 的理解

2009-9-1 14:33 2768 7 8 分类: MCU/ 嵌入式
MSDN Library中写到:

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

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

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

引用类型。

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

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

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

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

IntPtr 和 UIntPtr。

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

文章评论1条评论)

登录后参与讨论

huotingtu_505472073 2009-9-1 18:52

恩 这个关键字才嵌入式中应用确实很多,多谢楼主共享
相关推荐阅读
用户174379 2009-09-29 14:05
PPPOE的移植及使用(超级详细)
    最近很忙,也发生了好多意料之外的事情,所以好久没写日志了。这期间,做的东西也不少,很杂,什么都搞,什么都是会些。    前一段时间,参考黎明学长的文章做了一个PPPOE,自己写了一篇更加详细的...
用户174379 2009-09-01 21:29
月薪一万的乞丐给我上了震撼的一课
我拎着刚买的levi’s从茂业出来,站在门口等一个朋友。一个职业乞丐发现了我,非常专业的、径直的停在我面前。这一停,于是就有了后面这个让我深感震撼的故事,就象上了一堂生动的市场调查案例课。为了忠实于这...
用户174379 2009-08-29 16:54
郁闷!!
    今天调了一下午的LCD,现在还没搞定。破屏连一点反应都没有。我都要崩溃了。。。。   还要努力,加油。。。。 ...
用户174379 2009-08-26 12:29
2009师资培训PPT之十二(系统启动与Boot Loader)
完。。。。。...
用户174379 2009-08-25 19:01
2009师资培训PPT之十(MiniGUI编程与Sqlite编程)
未完待续。。。。。。。。。 ...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条