mutex --- mutex モジュール¶
mutex モジュールは、コードのクリティカルセクションや共有データを、割り込みサービスルーチンとメインスレッドによる同時アクセスから保護するための相互排他プリミティブを提供します。
ロックの取得と解放は、ミューテックスが利用可能になるまでブロックするコンテキストマネージャー(with 文)を介して実行されます。非ブロッキングの Mutex.test() メソッドも提供されています。
例:
from mutex import Mutex
mtx = Mutex()
# Acquire for a critical section (blocks if already held).
with mtx:
# ... protected code, e.g. shared buffer access ...
pass
# Or try without blocking.
if mtx.test():
try:
# ... protected code ...
pass
finally:
mtx.release()
class Mutex -- ミューテックスオブジェクト¶
- class mutex.Mutex¶
ロックされていないミューテックスオブジェクトを作成します。
- release() None¶
ミューテックスのロックを解除します。ミューテックスが現在ロックされていない場合は
mutex.MutexExceptionを発生させます。
例外¶
- exception mutex.MutexException¶
OSErrorのサブクラスです。ミューテックスがすでにロック解除されている場合にMutex.releaseによって発生します。