首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存顺序(一致性模型)与C99

内存顺序(一致性模型)与C99
EN

Stack Overflow用户
提问于 2014-12-04 18:33:01
回答 2查看 238关注 0票数 1

我看到C11有关于memory_order的其他特性(<GCC_SOURCE>/gcc/ginclude/stdatomic.hGCC记忆模型Wiki页面C11维基百科条目 )。

我很想知道C99中的默认行为是什么?默认情况下,它是否假定顺序一致性模型?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-04 20:00:33

还没有定义。多线程编程超出了早期C标准的范围.如果您正在编写多线程C99程序,那么您所依赖的是编译器做出的承诺,而不是C标准。

票数 3
EN

Stack Overflow用户

发布于 2014-12-04 21:36:36

_Atomic数据类型及其上的操作定义了内存一致性模型。原子的整个概念只是在C11中引入的,所以这样的内存排序约束根本不适用。

与atomics交互的唯一的前C11功能是信号。C99的sig_atomic_t只允许您在信号处理程序和程序的其余部分之间通信信息。在这里,“原子”一词是从基本意义上理解的,这是一种数据类型,保证完整地读或写,而不是部分地读或写,因为它可能发生在更广泛的数据类型中。

在C11中,某些类型的_Atomic数据类型也保证在信号处理程序中表现良好。因此,即使在没有线程的情况下,您也可能对memory_order感兴趣。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27301371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档