Cpp-standard-library-cpp-load
提供:Dev Guides
C ++アトミックライブラリ-ロード
説明
アトミックオブジェクトの値をアトミックに取得します。
宣言
- 以下は、std
- atomic :: loadの宣言です。
T load( std::memory_order order = std::memory_order_seq_cst ) const;
C 11
T load( std::memory_order order = std::memory_order_seq_cst ) const volatile;
パラメーター
*order* -メモリの順序の制約を強制するために使用されます。
戻り値
アトミック変数の現在の値を返します。
例外
*No-noexcept* -このメンバー関数は例外をスローしません。
例
- 以下のstd
- atomic :: loadの例。
#include <atomic>
#include <thread>
std::atomic<int> foo (0);
void set_foo(int x) {
foo.store(x,std::memory_order_relaxed);
}
void print_foo() {
int x;
do {
x = foo.load(std::memory_order_relaxed);
} while (x==0);
std::cout << "test: " << x << '\n';
}
int main () {
std::thread first (print_foo);
std::thread second (set_foo,10);
first.join();
second.join();
return 0;
}