【发布时间】:2011-06-20 12:39:29
【问题描述】:
有人能用凡人都能理解的语言解释吗?
【问题讨论】:
-
@DumbCoder:谢谢,这绝对比 N2390 本身要好,不幸的是,它重定向到许多其他“理解这个提议所必需的”论文......似乎我的问题过于宽泛:)
-
在普通语言中,它是一个可选的优化提示(目前每个编译器都未实现或忽略它),理论上可以允许编译器在很少修改、经常读取数据时生成稍微更好的多线程代码是共享的。干得好,措辞如此扭曲以至于无论如何都没有人会使用它:-)
-
我还向您指出这个问题,其中提到了 Anthony Williams 的一本好书:stackoverflow.com/questions/4938258/…
-
@Damon 并不是措辞被扭曲,而是语义完全愚蠢:
d?a:b打破了依赖关系,但d->static_fun()没有......这没有意义。而且它不允许“稍微更好的多线程代码”,避免频繁操作的围栏在某些处理器上明显更好。 “很少修改时,共享频繁读取的数据”consume也适用于频繁修改的数据,只要有指向它的指针,并且记录只在发布后读取,这是常态无论如何。
标签: c++ multithreading memory-model stdatomic carries-dependency