美文网首页
原子类型与原子操作

原子类型与原子操作

作者: 混世太保 | 来源:发表于2018-07-24 21:08 被阅读0次

    原子类型

    c++11提供了原子操作类型, 模板类std::atomic。
    头文件#include<atomic>

    内存模型

    在原子类型的操作中可以指定在实现的时候,对应的汇编指令的执行顺序。
    我们如果加了锁,那么对于加锁部分的代码,其执行顺序是顺序的。
    但是在c++11中我们可以指定内存模型。共有以下几种。

    枚举值 定义规则
    memory_order_relaxed 不对执行顺序做任何保证
    memory_order_acquire 本线程中,所有后续的读操作必须在本条原子操作完成后执行
    memory_order_release 本线程中,所有之前的写操作完成后,才能执行本条原子操作
    memory_order_acq_rel 同时包含memory_order_acquire和memory_order_release标记
    memory_order_consume 本线程中,所有后续的有关本原子类型的操作,必须在本条原子操作完成之后执行
    memory_order_seq_cst 全部存取都按顺序执行

    显然应该举个例子的啊。。

    相关文章

      网友评论

          本文标题:原子类型与原子操作

          本文链接:https://www.haomeiwen.com/subject/iunymftx.html