C++ atomic 头

  • 定义

    atomic类型是封装一个值的类型,该值的访问保证不会引起数据争用,并且可用于在不同线程之间同步内存访问。该标头声明了两个C++类,atomic 和 atomic_flag,实现独立类 atomic 类型的所有功能。标头还声明了与C中的原子支持兼容的整套C风格类型和函数。
  • tomic
    atomic_flag
  • 数据类型

    类型
    memory_order
  • C风格 atomic 类型

    下面的 atomic 类型也在这个头中定义;每个实例的行为与列出的包含类型的atomic实例的行为相同。
    包含类型 原子类型 描述
    bool atomic_bool 基本整数类型的原子。这些是原子类模板的相应完全转换的typedef或此类转换的基类。
    char atomic_char
    signed char atomic_schar
    unsigned char atomic_uchar
    short atomic_short
    unsigned short atomic_ushort
    int atomic_int
    unsigned int atomic_uint
    long atomic_long
    unsigned long atomic_ulong
    long long atomic_llong
    unsigned long long atomic_ullong
    wchar_t atomic_wchar_t
    char16_t atomic_char16_t
    char32_t atomic_char32_t
    intmax_t atomic_intmax_t 基于宽度的积分的原子(在<cinttypes>中定义的原子)。这些中的每一个都是上述原子之一的基本整数类型的别名,或者是原子类模板具有扩展整数类型的完全专门化的别名。其中N是8、16、32、64之一,或库支持的任何其他类型宽度。
    uintmax_t atomic_uintmax_t
    int_leastN_t atomic_int_leastN_t
    uint_leastN_t atomic_uint_leastN_t
    int_fastN_t atomic_int_fastN_t
    uint_fastN_t atomic_uint_fastN_t
    intptr_t atomic_intptr_t
    uintptr_t atomic_uintptr_t
    size_t atomic_size_t
    ptrdiff_t atomic_ptrdiff_t
  • 函数

    函数
    kill_dependency
    atomic_thread_fence
    atomic_signal_fence
  • 原子对象的函数(C风格)

    函数
    atomic_is_lock_free
    atomic_init
    atomic_store
    atomic_store_explicit
    atomic_load
    atomic_load_explicit
    atomic_exchange
    atomic_exchange_explicit
    atomic_compare_exchange_weak
    atomic_compare_exchange_weak_explicit
    atomic_compare_exchange_strong
    atomic_compare_exchange_strong_explicit
    atomic_fetch_add
    atomic_fetch_add_explicit
    atomic_fetch_sub
    atomic_fetch_sub_explicit
    atomic_fetch_and
    atomic_fetch_and_explicit
    atomic_fetch_or
    atomic_fetch_or_explicit
    atomic_fetch_xor
    atomic_fetch_xor_explicit
  • 原子标志的函数(C风格)

    函数
    atomic_flag_test_and_set
    atomic_flag_test_and_set_explicit
    atomic_flag_clear
    atomic_flag_clear_explicit
  • 宏函数

    宏函数 描述
    ATOMIC_VAR_INIT 原子变量初始化
    ATOMIC_FLAG_INIT 原子标志初始化
  • 宏常量

    宏常量 作用类型 定义
    ATOMIC_BOOL_LOCK_FREE bool
    • 0,如果类型永远都不是无锁的。
    • 1,它的类型有时是无锁的。
    • 2,如果类型始终是无锁的。
    atomic::is_lock_free返回的值一致。
    ATOMIC_CHAR_LOCK_FREE char / signed char / unsigned char
    ATOMIC_SHORT_LOCK_FREE short / unsigned short
    ATOMIC_INT_LOCK_FREE int / unsigned int
    ATOMIC_LONG_LOCK_FREE long / unsigned long
    ATOMIC_LLONG_LOCK_FREE long long / unsigned long long
    ATOMIC_WCHAR_T_LOCK_FREE wchar_t
    ATOMIC_CHAR16_T_LOCK_FREE char16_t
    ATOMIC_CHAR32_T_LOCK_FREE char32_t
    ATOMIC_POINTER_LOCK_FREE U* / (for any type U)