入出力ストリームの Rogue Wave 実装とロケールのマルチスレッド安全のレベルは、レベル 2 です。公開関数や限定公開関数はすべて再入可能なため、静的データや大域データに対して複数のスレッドが実行される可能性があります。これを防ぐために保護機能を用意しました。保護機能としては相互排他ロックが優先しますが、ライブラリでもオブジェクトに対する書き込みの前にロックを設定します。静的、大域、局所を問わず、オブジェクト上で 1 回の演算を実行するために、プログラム上で明示的にクラスオブジェクトをロックしたり、ロックを解除する必要はありません。
これは、ストリームバッファを除き、入出力ストリームオブジェクトは、明示的にロックしなくても 1 つの相互排他オブジェクトだけで、実行中のスレッド間で共有することができることを意味します。ロックメカニズムは、ストリームレベルで実行されます。そのため、ストリームに対する演算は、次の演算も含めて、すべてマルチスレッドに対して安全です。
スレッド 1: |
スレッド 2: |
|
cout << "Thread 1" << endl; |
cout << " Thread 2" << endl; |
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月