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 引發。