モニター - 注意事項

モニターは、読み取り、参照、および書き込みの操作のためにロックすることが可能な同期オブジェクトです。一般に、このタイプの同期は、複数のスレッドで読み取りおよび書き込みを行う可能性があるデータ構造を保護するために使用されます。

モニターはプロセス内の同期オブジェクトとしてのみ使用できます。

ライブラリ ルーチンを使用して作成されたか開かれたモニターは、ランタイム システムの終了時 (STOP RUN の実行後など) に自動的に閉じられます。

書き込みロックの使用時は、他のすべての読み取りロック、参照ロック、および書き込みロックが禁止されます。通常、書き込みロックは、データ構造への書き込みを行う際に使用されます。

参照ロックの使用時は、他の書き込みロックおよび参照ロックが禁止されますが、読み取りロックは同時に使用できます。通常、参照ロックは、データ構造を読み取り、その読み取りの結果に応じて書き込みを行う場合に使用されます。この目的のために、他の書き込みをさせずに参照ロックを書き込みロックに変換する機能が用意されています。

読み取りロックの使用時は、書き込みロックのみが禁止されます。通常、読み取りロックは、データ構造を読み取り、書き込みは行わない場合に使用されます。

スレッドがロックを取得した後、その元のロックが解放される前に他のロックをさらに取得しようとすると、参照ロックを使用した変換処理が行われる場合を除き、予期しない結果になります。