次の方法で共有


C++ の標準ライブラリのスレッド セーフ

次のスレッド セーフ規則は標準 C++ ライブラリのすべてのクラスに適用します (shared_ptr および iostream クラスを除いて次のように)

単一のオブジェクトを複数のスレッドから読み取りのためにスレッド セーフです。たとえばオブジェクト A の場合はスレッド 1 と 2 ではスレッド A を同時に行うことも安全です。

1 種類のスレッドで一つのオブジェクトを記述したらすべて読み取り同じまたは別のスレッドでそのオブジェクトに対する読み書きを保護する必要があります。たとえばスレッド A が 1 に作成した場合オブジェクトはスレッド 2 に付属の読み取りまたは書き込みから A. に防がれなければ必要があります。

型の 1 個のインスタンスの読み取りと書き込みが安全で別のスレッドでも同じ型の異なるインスタンスの読み取りまたは書き込みを行います。たとえば指定したオブジェクトは同じ内の 12 C は入力はスレッド 1 で記述され12 C が読み取られたスレッド 2. の場合は安全です。

shared_ptr

複数のスレッドはオブジェクトが所有権を共有するコピーであっても同時に shared_ptr の異なるオブジェクトを読み書きできます。

iostream クラス

iostream クラスは1 点が異なります他のクラスと同じ規則に従います。複数のスレッドからオブジェクトに書き込む方が安全です。たとえばスレッド 1 ではスレッド 2. と cout に記述できます。ただしこれは混在する 2 とおりのスレッドに出力を生成できます。

[!メモ]

バッファー ストリームからの読み取りは読み取り操作と見なされません。また書き込み操作としてこれはクラスの状態を変更することを検討してください。

参照

関連項目

C++ の標準ライブラリの概要