C++ ライブラリ・リファレンス

順次実行

iostream オブジェクトを使用すると、一連の入出力操作を「MT-安全」にしなければならない状況が頻繁に起こります。次のコードを例に考えてみましょう。


cout << " Error message:" << errstring[err_number] << "¥n";

このコードには、cout ストリームオブジェクトの 3 つのメンバー関数の実行が含まれています。 cout は共有オブジェクトですから、このコードをマルチスレッド環境で正しく実行するには、一連の入出力操作が危険領域として不可分命令的に実行されなければなりません。iostream クラスオブジェクトの一連の入出力操作を不可分命令的に実行するには、なんらかのロックを行う必要があります。

libC ライブラリでは、iostream オブジェクトの操作をロックするための stream_locker クラスが提供されています。stream_locker クラスについては、次の「オブジェクトのロック」を参照してください。