アトミック操作ライブラリ
提供: cppreference.com
< cpp
アトミック操作ライブラリは、ロックフリーな並行プログラミングに必要となる細粒度なアトミック操作のためのコンポーネントを提供します。 各アトミック操作は、それと同じオブジェクトを対象とする他のアトミック操作に対して不可分な操作です。 アトミックオブジェクトはデータ競合が発生しません。
ヘッダ <atomic> で定義 | ||
アトミック型 | ||
(C++11) | atomic クラステンプレートと bool 型、整数型、ポインタ型に対する特殊化 (クラステンプレート) | |
(C++20) | 非アトミックオブジェクトに対するアトミック操作を提供します (クラステンプレート) | |
アトミック型の操作 | ||
(C++11) | アトミック型の操作がロックフリーかどうか調べます (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトの値を非アトミック引数でアトミックに置き換えます (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトに格納されている値をアトミックに取得します (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトの値を非アトミック引数でアトミックに置き換え、そのアトミックの古い値を返します (関数テンプレート) | |
アトミックに、アトミックオブジェクトの値を非アトミック引数と比較し、等しければ交換を行い、等しくなければ読み込みます (関数テンプレート) | ||
(C++11)(C++11) | アトミックオブジェクトに非アトミック値を加算し、そのアトミックの以前の値を取得します (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトから非アトミック値を減算し、アトミックの以前の値を取得します (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトの値を非アトミック引数とビット単位の論理積を取った結果で置き換え、アトミックの以前の値を取得します (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトの値を非アトミック引数とビット単位の論理和を取った結果で置き換え、アトミックの以前の値を取得します (関数テンプレート) | |
(C++11)(C++11) | アトミックオブジェクトの値を非アトミック引数とビット単位の排他的論理和を取った結果で置き換え、アトミックの以前の値を取得します (関数テンプレート) | |
(C++20)(C++20) | 通知されかつアトミック値が変更されるまでスレッドをブロックします (関数テンプレート) | |
(C++20) | atomic_wait でブロックしているスレッドの1つに通知します (関数テンプレート) | |
(C++20) | atomic_wait でブロックしているすべてのスレッドに通知します (関数テンプレート) | |
フラグ型とその操作 | ||
(C++11) | ロックフリーなアトミックブーリアン型 (クラス) | |
アトミックにフラグを true に設定し、その以前の値を返します (関数) | ||
(C++11)(C++11) | アトミックにフラグの値を false に設定します (関数) | |
(C++20)(C++20) | フラグの値をアトミックに返します (関数) | |
(C++20)(C++20) | 通知されかつフラグが変更されるまでスレッドをブロックします (関数テンプレート) | |
(C++20) | atomic_flag_wait でブロックしているスレッドの1つに通知します (関数テンプレート) | |
(C++20) | atomic_flag_wait でブロックしているすべてのスレッドに通知します (関数テンプレート) | |
初期化 | ||
(C++11) | デフォルト構築されたアトミックオブジェクトの非アトミックな初期化を行います (関数テンプレート) | |
(C++11) | 静的記憶域期間のアトミック変数の定数初期化 (関数マクロ) | |
(C++11) | std::atomic_flag を false に初期化します (マクロ定数) | |
メモリ同期順序付け | ||
(C++11) | 指定されたアトミック操作のメモリ順序制約を定義します (列挙) | |
(C++11) | std::memory_order_consume の依存関係ツリーから指定されたオブジェクトを削除します (関数テンプレート) | |
(C++11) | 汎用のメモリ順序依存関係のフェンス同期プリミティブ (関数) | |
(C++11) | 同じスレッドで実行されるシグナルハンドラとの間のフェンス (関数) |
[編集]関連項目
アトミック操作ライブラリ の C言語リファレンス |