mutex --- mutex 模組

mutex 模組提供一個互斥(mutual-exclusion)原語,用以保護程式碼的臨界區段或共享資料,避免被中斷服務常式與主執行緒並行存取。

鎖的取得與釋放透過情境管理器(with 陳述式)執行,它會封鎖直到 mutex 可用為止。同時也提供一個非封鎖的 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 -- mutex 物件

class mutex.Mutex

建立一個未上鎖的 mutex 物件。

release() None

解鎖 mutex。若 mutex 目前未上鎖,則引發 mutex.MutexException

test() bool

嘗試以非封鎖方式取得 mutex。成功時傳回 True,若 mutex 已上鎖則傳回 False

若要以封鎖方式取得 mutex,請將實例作為情境管理器使用(with 陳述式)。離開時 mutex 會自動釋放。

例外

exception mutex.MutexException

OSError 的子類別。當 mutex 已是未上鎖狀態時,由 Mutex.release 引發。