Cpp-standard-library-cpp-atomic

提供:Dev Guides
移動先:案内検索

C ++ライブラリ-<原子>

前書き

特定のタイプ(T)の値を含むアトミックタイプのオブジェクトであり、アトミックオブジェクトの主な特徴は、異なるスレッドからこの含まれる値へのアクセスがデータの競合を引き起こさないことです(つまり、それは明確に定義された動作です。適切にシーケンスされたアクセス)。 一般に、他のすべてのオブジェクトでは、同じオブジェクトに同時にアクセスするためのデータ競合が発生する可能性があるため、操作は未定義の動作として限定されます。

宣言

以下は、std
atomicの宣言です。
template <class T> struct atomic;

パラメーター

*T* -含まれる値のタイプです。

メンバー関数

Sr.No. Member functions & Definition
1

(constructor)

アトミックオブジェクトを構築します

2

/cpp_standard_library/cpp_basic_ios_operator_equal

値をアトミックオブジェクトに格納します

3

is_lock_free

アトミックオブジェクトがロックフリーかどうかをチェックします

4

store

アトミックオブジェクトの値をアトミックではない引数にアトミックに置き換えます

5

load

アトミックオブジェクトの値をアトミックに取得します

6

operator T

アトミックオブジェクトから値をロードします

7

exchange

アトミックオブジェクトの値をアトミックに置き換え、以前に保持された値を取得します

8

compare_exchange_weak & compare_exchange_strong

アトミックオブジェクトの値を非アトミック引数とアトミックに比較し、等しい場合はアトミック交換を実行し、等しくない場合はアトミックロードを実行します

特定の専門分野でサポートされている操作

Sr.No. Operations & Definition
1

fetch_add

アトミックオブジェクトに格納されている値にアトミックに引数を追加し、以前に保持された値を取得します

2

fetch_sub

アトミックオブジェクトに格納されている値からアトミックに引数を減算し、以前に保持された値を取得します

3

fetch_and

引数とアトミックオブジェクトの値の間でアトミックにビット単位のANDを実行し、以前に保持された値を取得します

4

fetch_or

引数とアトミックオブジェクトの値の間でビット単位のORをアトミックに実行し、以前に保持された値を取得します

5

fetch_xor

アトミックオブジェクトの値を非アトミック引数とアトミックに比較し、等しい場合はアトミック交換を実行し、等しくない場合はアトミックロードを実行します

6

operator++

原子値を1つ増やします

7

operator--

原子値を1減らします