mutex — mutex modul

A mutex modul egy kölcsönös kizárási primitívet nyújt a kód kritikus szakaszainak vagy a megosztott adatoknak a megszakítási kiszolgáló rutin és a fő szál általi egyidejű hozzáférés elleni védelmére.

A zár megszerzése és felszabadítása egy kontextuskezelővel (with utasítás) történik, amely blokkol, amíg a mutex elérhetővé nem válik. Egy nem blokkoló Mutex.test() metódus is rendelkezésre áll.

Példa:

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 objektum

class mutex.Mutex

Létrehoz egy nem zárolt mutex objektumot.

release() None

Feloldja a mutex zárolását. mutex.MutexException kivételt vált ki, ha a mutex jelenleg nincs zárolva.

test() bool

Megpróbálja megszerezni a mutexet nem blokkoló módon. Sikeres esetben True értéket ad vissza, és False értéket, ha a mutex már zárolva van.

A mutex blokkoló módon való megszerzéséhez használja a példányt kontextuskezelőként (with utasítás). A mutex automatikusan felszabadul kilépéskor.

Kivételek

exception mutex.MutexException

Az OSError alosztálya. A Mutex.release váltja ki, ha a mutex már fel van oldva.