マルチスレッドのプログラミング

コードロック

コードロックは関数の呼び出しのレベルで行うロックで、その関数の全体がロックの保護下で実行されることを保証するものです。コードロックが成立するためには、すべてのデータアクセスが関数を通して行われることが前提となります。また、データを共有する関数が複数あるとき、それらを同じロックの保護下で実行することも必要です。

一部の並列プログラミング言語では、モニターという構造が用意されています。モニターは、その対象範囲内に定義されている関数に対して、暗黙の内にコードロックを行います。相互排他ロック (mutex ロック) によって、モニターを実装することも可能です。

同じ相互排他ロックの保護下にある関数または同じモニターの対象範囲内にある関数は、互いに不可分操作的に実行されることが保証されます。