std::atomic

来自cppreference.com
< cpp‎ | atomic


 
 
原子操作库
类型
原文:
Types
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic(C++11)
atomic_is_lock_free(C++11)
功能
原文:
Functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic_store
atomic_store_explicit
(C++11)
(C++11)
atomic_load
atomic_load_explicit
(C++11)
(C++11)
atomic_exchange
atomic_exchange_explicit
(C++11)
(C++11)
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
(C++11)
(C++11)
(C++11)
(C++11)
atomic_fetch_add
atomic_fetch_add_explicit
(C++11)
(C++11)
atomic_fetch_sub
atomic_fetch_sub_explicit
(C++11)
(C++11)
atomic_fetch_and
atomic_fetch_and_explicit
(C++11)
(C++11)
atomic_fetch_or
atomic_fetch_or_explicit
(C++11)
(C++11)
atomic_fetch_xor
atomic_fetch_xor_explicit
(C++11)
(C++11)
原子标志
原文:
Atomic flags
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic_flag(C++11)
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
(C++11)
(C++11)
atomic_flag_clear
atomic_flag_clear_explicit
(C++11)
(C++11)
初始化
原文:
Initialization
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic_init(C++11)
ATOMIC_VAR_INIT(C++11)
ATOMIC_FLAG_INIT(C++11)
内存排序
原文:
Memory ordering
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
memory_order(C++11)
kill_dependency(C++11)
atomic_thread_fence(C++11)
atomic_signal_fence(C++11)
 
std::atomic
成员函数
原文:
Member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic::atomic
atomic::operator=
atomic::is_lock_free
atomic::store
atomic::load
atomic::operator T
atomic::exchange
atomic::compare_exchange
专业的成员函数
原文:
Specialized member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
atomic::fetch_add
atomic::fetch_sub
atomic::fetch_and
atomic::fetch_or
atomic::fetch_xor
atomic::operator++
atomic::operator++(int)
atomic::operator--
atomic::operator--(int)
atomic::operator+=
atomic::operator-=
atomic::operator&=
atomic::operator|=
atomic::operator^=
 
在头文件 <atomic> 中定义
template< class T >
struct atomic;
(1) (C++11 起)
template<>
struct atomic<Integral>;
(2) (C++11 起)
template< class T >
struct atomic<T*>;
(3) (C++11 起)
每个完整的专业化的std::atomic模板定义了原子类型。原子类型的对象是唯一的C ​​+ +对象从数据场比赛都是免费的,也就是说,如果一个线程写入的原子对象,而另一个线程读取,其行为是定义良好的.
原文:
Each full specialization of the std::atomic template defines an atomic type. Objects of atomic types are the only C++ objects that are free from data races; that is, if one thread writes to an atomic object while another thread reads from it, the behavior is well-defined.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
此外,访问到原子的对象可能会建立线程间的同步和秩序的非原子内存访问指定的std::memory_order.
原文:
In addition, accesses to atomic objects may establish inter-thread synchronization and order non-atomic memory accesses as specified by std::memory_order.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
标准库提供了完整的专业的std::atomic模板为以下几种类型:1
原文:
The standard library provides full specializations of the std::atomic template for the following types:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
1)
bool的类型和typedef名称定义一个专业化,视为非专业std::atomic<T>除了它具有标准的布局,常用的默认构造函数,析构函数琐碎的,支持的聚合初始化语法
原文:
One specialization for the type bool and its typedef name is defined that is treated as a non-specialized std::atomic<T> except that it has standard layout, trivial default constructor, trivial destructors, and supports aggregate initialization syntax:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
自定义类型的名称
原文:
Typedef name
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Full specialization
std::atomic_bool std::atomic<bool>
2)
专业化和类型定义为整数类型,如下所示:
原文:
Specializations and typedefs for integral types, as follows:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
自定义类型的名称
原文:
Typedef name
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Full specialization
std::atomic_char std::atomic<char>
std::atomic_schar std::atomic<signed char>
std::atomic_uchar std::atomic<unsigned char>
std::atomic_short std::atomic<short>
std::atomic_ushort std::atomic<unsigned short>
std::atomic_int std::atomic<int>
std::atomic_uint std::atomic<unsigned int>
std::atomic_long std::atomic<long>
std::atomic_ulong std::atomic<unsigned long>
std::atomic_llong std::atomic<long long>
std::atomic_ullong std::atomic<unsigned long long>
std::atomic_char16_t std::atomic<char16_t>
std::atomic_char32_t std::atomic<char32_t>
std::atomic_wchar_t std::atomic<wchar_t>
std::atomic_int_least8_t std::atomic<int_least8_t>
std::atomic_uint_least8_t std::atomic<uint_least8_t>
std::atomic_int_least16_t std::atomic<int_least16_t>
std::atomic_uint_least16_t std::atomic<uint_least16_t>
std::atomic_int_least32_t std::atomic<int_least32_t>
std::atomic_uint_least32_t std::atomic<uint_least32_t>
std::atomic_int_least64_t std::atomic<int_least64_t>
std::atomic_uint_least64_t std::atomic<uint_least64_t>
std::atomic_int_fast8_t std::atomic<int_fast8_t>
std::atomic_uint_fast8_t std::atomic<uint_fast8_t>
std::atomic_int_fast16_t std::atomic<int_fast16_t>
std::atomic_uint_fast16_t std::atomic<uint_fast16_t>
std::atomic_int_fast32_t std::atomic<int_fast32_t>
std::atomic_uint_fast32_t std::atomic<uint_fast32_t>
std::atomic_int_fast64_t std::atomic<int_fast64_t>
std::atomic_uint_fast64_t std::atomic<uint_fast64_t>
std::atomic_intptr_t std::atomic<intptr_t>
std::atomic_uintptr_t std::atomic<uintptr_t>
std::atomic_size_t std::atomic<size_t>
std::atomic_ptrdiff_t std::atomic<ptrdiff_t>
std::atomic_intmax_t std::atomic<intmax_t>
std::atomic_uintmax_t std::atomic<uintmax_t>
这些专业有标准的布局,常用的默认构造函数和平凡的析构函数。他们支持的聚合初始化语法.
原文:
These specializations have standard layout, trivial default constructors, and trivial destructors. They support aggregate initialization syntax.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
3)
std::atomic<T*>所有的指针类型。这些专业有标准的布局,常用的默认构造函数和平凡的析构函数。他们支持聚合
原文:
std::atomic<T*> for all pointer types. These specializations have standard layout, trivial default constructors, and trivial destructors. They support aggregate
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
初始化语法.
原文:
initialization syntax.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 成员函数

构建一个原子对象
原文:
constructs an atomic object
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
一个值存储到一个原子对象
原文:
stores a value into an atomic object
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
检查如果的原子对象是无锁的
原文:
checks if the atomic object is lock-free
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
以原子的原子对象的值替换的非原子的说法
原文:
atomically replaces the value of the atomic object with a non-atomic argument
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
原子获得的值的原子对象
原文:
atomically obtains the value of the atomic object
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
从一个原子对象加载的值
原文:
loads a value from an atomic object
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
原子取代原子对象的值,并获得先前保持的值
原文:
atomically replaced the value of the atomic object and obtains the value held previously
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
原子原子对象与非原子的参数的值的比较,并执行原子交换,如果等于或原子的负载如果不是
原文:
atomically compares the value of the atomic object with non-atomic argument and performs atomic exchange if equal or atomic load if not
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]

[编辑] 专业的成员函数

(C++11)
原子级的参数的值存储在原子对象,并获得先前保存的值
原文:
atomically adds the argument to the value stored in the atomic object and obtains the value held previously
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
原子地减的说法,从原子对象中存储的值,并获得先前保存的值
原文:
atomically subtracts the argument from the value stored in the atomic object and obtains the value held previously
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
以原子方式执行按位“与”之间的参数的值的原子对象,并获得先前保存的值
原文:
atomically performs bitwise AND between the argument and the value of the atomic object and obtains the value held previously
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
(C++11)
atomically performs bitwise OR between the argument and the value of the atomic object and obtains the value held previously
(公共成员函数) [edit]
(C++11)
以原子方式执行按位异或的原子对象之间的参数的值,并获得先前保存的值
原文:
atomically performs bitwise XOR between the argument and the value of the atomic object and obtains the value held previously
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
递增或递减一个原子值
原文:
increments or decrements the atomic value by one
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
加,减,或执行按位AND,OR,XOR的原子值
原文:
adds, subtracts, or performs bitwise AND, OR, XOR with the atomic value
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]

[编辑] 注释

有非成员函数模板的等价物的所有成员函数std::atomic。这些非成员函数可以被附加超载的类型是不专业的std::atomic,但能保证原子性。在标准库中是唯一的这种类型std::shared_ptr<T>.
原文:
There are non-member function template equivalents for all member functions of std::atomic. Those non-member functions may be additionally overloaded for types that are not specializations of std::atomic, but are able to guarantee atomicity. The only such type in the standard library is std::shared_ptr<T>.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 另请参阅

(C++11)
无锁的布尔原子类型
原文:
the lock-free boolean atomic type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类) [edit]