Cpp-standard-library-cpp-atomic
C ++ライブラリ-<原子>
前書き
特定のタイプ(T)の値を含むアトミックタイプのオブジェクトであり、アトミックオブジェクトの主な特徴は、異なるスレッドからこの含まれる値へのアクセスがデータの競合を引き起こさないことです(つまり、それは明確に定義された動作です。適切にシーケンスされたアクセス)。 一般に、他のすべてのオブジェクトでは、同じオブジェクトに同時にアクセスするためのデータ競合が発生する可能性があるため、操作は未定義の動作として限定されます。
宣言
- 以下は、std
- atomicの宣言です。
template <class T> struct atomic;
パラメーター
*T* -含まれる値のタイプです。
メンバー関数
Sr.No. | Member functions & Definition |
---|---|
1 |
アトミックオブジェクトを構築します |
2 |
/cpp_standard_library/cpp_basic_ios_operator_equal 値をアトミックオブジェクトに格納します |
3 |
アトミックオブジェクトがロックフリーかどうかをチェックします |
4 |
アトミックオブジェクトの値をアトミックではない引数にアトミックに置き換えます |
5 |
アトミックオブジェクトの値をアトミックに取得します |
6 |
アトミックオブジェクトから値をロードします |
7 |
アトミックオブジェクトの値をアトミックに置き換え、以前に保持された値を取得します |
8 |
compare_exchange_weak & compare_exchange_strong アトミックオブジェクトの値を非アトミック引数とアトミックに比較し、等しい場合はアトミック交換を実行し、等しくない場合はアトミックロードを実行します |
特定の専門分野でサポートされている操作
Sr.No. | Operations & Definition |
---|---|
1 |
アトミックオブジェクトに格納されている値にアトミックに引数を追加し、以前に保持された値を取得します |
2 |
アトミックオブジェクトに格納されている値からアトミックに引数を減算し、以前に保持された値を取得します |
3 |
引数とアトミックオブジェクトの値の間でアトミックにビット単位のANDを実行し、以前に保持された値を取得します |
4 |
引数とアトミックオブジェクトの値の間でビット単位のORをアトミックに実行し、以前に保持された値を取得します |
5 |
アトミックオブジェクトの値を非アトミック引数とアトミックに比較し、等しい場合はアトミック交換を実行し、等しくない場合はアトミックロードを実行します |
6 |
原子値を1つ増やします |
7 |
原子値を1減らします |