zoukankan      html  css  js  c++  java
  • c++ automic

    atomic 原子类型是对特定类型(T)对象的一种封装,可以防止数据竞争,同步多线程间的内存访问。

    原子对象能够通过指定不同的内存顺序来同步对线程中其他非原子对象的访问。

    相关函数:

                  atomic() noexcept = default;    // 默认构造函数,构造一个未初始化的对象

                  constexpr atomic(T val) noexcept;    // 初始化构造函数,构造一个用val初始化的原子对象

                  atomic(const atomic&) = delete;    // 禁用拷贝构造函数

                  atomic& operator = (const atomic&) = delete;    // 禁用赋值操作函数

                  T operator = (T val) noexcept;   // 使用指定值进行赋值

                  is_lock_free()    // 判断原子对象是否lock-free状态

                  store(T val)    //用设定值替换当前值,该操作是原子性的

                  load(memory_order sync = memory_order_seq_cst)    //返回当前值,该操作是原子性的

                  operator T()    // 返回当前值,这是一个类型转换符,取出原子对象中类型为T的值

                  exchange(T val)   // 用设定值替换当前值,并返回当前值

                  compare_exchange_weak(T& expected, T val, memory_order sync = memory_order_seq_cst)

                  compare_exchange_strong(T& expected, T val, memory_order sync = memory_order_seq_cst)

                 // 当前值与期望值相等时,修改当前值为设定值,返回true; 当前值与期望值不等时,不进行修改,返回false

                 // weak与strong的差别在于weak可能在满足当前值与期望值相等的情况下仍然返回false

  • 相关阅读:
    项目发展规划 题解
    善意的投票&小M的作物 题解
    方格取数加强版 题解
    BZOJ1001 狼抓兔子 题解
    a
    一个搬运
    代码“小白”的温故而知新(一)-----OA管理系统
    工作流-----WorkFlow
    温习SQL语句
    浅谈MVC基础
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13189069.html
Copyright © 2011-2022 走看看