6.12 mutex -- 排他制御

mutexモジュールはロックの獲得と解除を通して排他制御を 可能にするクラスを定義します。 スレッドやマルチタスクを必要と(あるいは意味)しませんが、 それらの目的に有益となることでしょう。

mutexモジュールは以下のクラスを定義します:

class mutex( )
新しい(ロックされてない)mutexを作ります。

mutexは状態を2つ持ちます -- ``ロック''ビットとキューです。 mutexがロックされていないとき、キューは空です。 mutexがロックされているとき、キューは空、 あるいはロックを獲得するために待っている関数(またはメソッド) を示すペア(function, argument)を収容しています。 キューが空でないときにmutexが解除されると、 最初のキュー登録が削除されてそのfunction(argument)が 呼び出れ、それが今はロックを持ちます。

もちろんマルチスレッドの意味は全くなく、 一度ロックを取得すると関数が呼ばれるので、 lock()による風変わりなインターフェースとなりえます。



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。