Atomic operations library
cppreference.com
< cpp
원자적 연산 라이브러리는 락(lock)없는 동시성 프로그래밍(concurrent programming)을 가능하게 할 수 있는 잘 구분지어진 원자적인 연산을 제공한다. 각 원자적 연산은 다른 원자적 연산에 독립적이며, 같은 오브젝트를 포함하더라도 상호작용 하지 않는다. 원자적 오브젝트는 데이터 경쟁에서 자유롭다.
<atomic> 헤더에 정의됨. | ||
Atomic types | ||
(C++11) |
atomic class template and specializations for bool, integral, and pointer types (class template) | |
Operations on atomic types | ||
(C++11) |
checks if the atomic type's operations are lock-free (function template) | |
(C++11) (C++11) |
atomically replaces the value of the atomic object with a non-atomic argument (function template) | |
(C++11) (C++11) |
atomically obtains the value stored in an atomic object (function template) | |
(C++11) (C++11) |
atomically replaces the value of the atomic object with non-atomic argument and returns the old value of the atomic (function template) | |
atomically compares the value of the atomic object with non-atomic argument and performs atomic exchange if equal or atomic load if not (function template) | ||
(C++11) (C++11) |
adds a non-atomic value to an atomic object and obtains the previous value of the atomic (function template) | |
(C++11) (C++11) |
subtracts a non-atomic value from an atomic object and obtains the previous value of the atomic (function template) | |
(C++11) (C++11) |
replaces the atomic object with the result of logical AND with a non-atomic argument and obtains the previous value of the atomic (function template) | |
(C++11) (C++11) |
replaces the atomic object with the result of logical OR with a non-atomic argument and obtains the previous value of the atomic (function template) | |
(C++11) (C++11) |
replaces the atomic object with the result of logical XOR with a non-atomic argument and obtains the previous value of the atomic (function template) | |
Flag type and operations | ||
(C++11) |
the lock-free boolean atomic type (class) | |
atomically sets the flag to true and returns its previous value (function) | ||
(C++11) (C++11) |
atomically sets the value of the flag to false (function) | |
Initialization | ||
(C++11) |
non-atomic initialization of a default-constructed atomic object (function template) | |
(C++11) |
constant initialization of an atomic variable of static storage duration (function macro) | |
(C++11) |
initializes an std::atomic_flag to false (macro constant) | |
Memory synchronization ordering | ||
(C++11) |
defines memory ordering constraints for the given atomic operation (typedef) | |
(C++11) |
removes the specified object from the std::memory_order_consume dependency tree (function template) | |
(C++11) |
generic memory order-dependent fence synchronization primitive (function) | |
(C++11) |
fence between a thread and a signal handler executed in the same thread (function) |
[편집] See also
C documentation for Atomic operations library
|