返回信息流最近在看《C++ Concurrency In Action》,对这个内存模型有点迷:
1、顺序一致性(memory_order_seq_cst)是指对于单个线程来说,执行序列严格按照代码顺序,原子类型的变量的状态始终是对其它线程可见的,而且对于原子类型的变量的load和store也严格按照顺序,即所谓的缓存一致和顺序一致?
2、松弛一致性(memory_order_relaxed)是指对于单个线程里同意个原子类型的变量的操作是顺序的,不同变量之间的代码可以乱序?而且变量在线程间不是立即可见的?
第三类暂且不谈,先求教前两类!!!@暖神
这是一条镜像帖。来源:北邮人论坛 / cpp / #95854同步于 2017/7/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++11 六种内存模型有大佬懂吗?
MrLoser
2017/7/26镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
最科普的当然是adve的tutorial啦:http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf
C++11的memory_order_*不是六种内存模型,而是若干种memory order。c++11只有一个内存模型。关于c++的内存模型,看boehm的http://rsim.cs.illinois.edu/Pubs/08PLDI.pdf
顺便在这个版内搜一下“毁三观”