PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
Re: [问题] volatile的正确用法
楼主:
Killercat
(杀人猫™)
2014-09-13 20:53:23
我自己看过volatile会用在这几个地方,可以参考一下
1. 大多数的Device都会在kernel space map一块内存作为沟通之用
这块100%是volatile,不然稳死
简单说这块内存内容根本不是自己控制的,所以每次查询都需要去peek
2. 这情况虽然我不觉得需要volatile,但是很多人认为是需要的
就是threading的global部分(这是个多危险的东西啊 XD)
我总觉得这用法是从java来的,java会用volatile做某种程度的synchronized
我不知道C有没有这种行为
3. shmat拿到的void*取值后最好要volatile,别铁齿,虽然看起来是user space
作者:
Feis
(永远睡不着 @@)
2014-09-13 21:25:00
threading 的部分, C 靠 volatile 做到 "一点点"C++ 有自己一套玩法
作者: firose (guest也是也是也是也是也)
2014-09-13 22:08:00
java volatile 可处理 reorder & coherence, C++ 没有
作者:
windows2k
(程式宅 <囧>)
2014-09-13 23:16:00
VC2005的volatile有Java volatile的语意,不过也只有VC有这玩意,C11/C++11推的是atomic不过这边跟猿啼有点偏了..:p
http://bit.ly/1pe0njw
有兴趣的话参考看看
作者:
carylorrk
(carylorrk)
2014-09-14 02:41:00
基本上意识到内容不是自己的,就该考虑用 violatile不过这是最低限度,像是 threading 加不加无所谓是因为很多时候都不够用...不过基本上还是只有处理 hardware 的时候最常见pthread lock 或是 atomic 才能保证单一变量的语意,同时也包含了 volatile 的语意。而 1 和 3 在 Linux 上某种程度上来说是差不多的东西 XD*保证单一变量的 sync 语义
作者:
saladim
(杀拉顶)
2014-09-14 10:28:00
到了multiCore整个状况又变难了
作者:
carylorrk
(carylorrk)
2014-09-14 16:32:00
发现昨天睡前整个语无伦次...
继续阅读
Re: [问题] volatile的正确用法
Feis
[讨论] 整数转成字符小问题
longted3
[问题] volatile的正确用法
windows2k
[问题] Visual C++ 2010的问题
mori9455
[问题] Dev C++编码错误讯息
filexchang
[分享] JetBrains CLion公开测试
Killercat
[问题] sin/cos 数学公式
makuebx
[问题] 读取档案搜寻字串输出另一字串
justakid18
[问题] include 寻找路径
a76126
[问题] C++Primer 4/e r中文版
hashbrown
Links
booklink
Contact Us: admin [ a t ] ucptt.com