so true

心怀未来,开创未来!
随笔 - 160, 文章 - 0, 评论 - 40, 引用 - 0
数据加载中……

c++原子操作

1. __sync_bool_compare_and_swap系列是gcc最早内置的;
2. __atomic_compare_exchange_n系列是新版gcc内置的,支持6种memory order;
3. std::atomic之类的是stl的封装;
4. 6种mem order,https://www.zhihu.com/question/24301047里讲得不错,概括下:
memory_order_seq_cst最严,memory_order_relaxed最松,通常是用acquire(load时)/release(store时)模式,在该大模式下:
a. 通常是读用memory_order_acquire,写用memory_order_release;
b. 如果只是针对单个变量且该变量没有依赖的变量,acquire可以弱化为consume;
c. 如果不想区分什么单变量多变量或读写状态,简单点统一用memory_order_acq_rel。

posted on 2020-06-28 17:19 so true 阅读(188) 评论(0)  编辑  收藏 所属分类: C&C++


只有注册用户登录后才能发表评论。


网站导航: