mutex — modul mutex

Modul mutex poskytuje primitivum vzájemného vyloučení pro ochranu kritických sekcí kódu nebo sdílených dat před souběžným přístupem z obslužné rutiny přerušení a hlavního vlákna.

Získání a uvolnění zámku se provádí prostřednictvím správce kontextu (příkaz with), který blokuje, dokud není mutex k dispozici. K dispozici je také neblokující metoda Mutex.test().

Příklad:

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()

třída Mutex – objekt mutex

class mutex.Mutex

Vytvoří odemčený objekt mutex.

release() None

Odemkne mutex. Vyvolá mutex.MutexException, pokud mutex není aktuálně zamčen.

test() bool

Pokusí se získat mutex neblokujícím způsobem. Vrací True při úspěchu a False, pokud je mutex již zamčen.

Pro získání mutexu blokujícím způsobem použijte instanci jako správce kontextu (příkaz with). Mutex se při ukončení automaticky uvolní.

Výjimky

exception mutex.MutexException

Podtřída OSError. Vyvolaná metodou Mutex.release, když je mutex již odemčen.