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.