mutex — mutex-modul

Modulen mutex tillhandahåller en primitiv för ömsesidig uteslutning för att skydda kritiska kodsektioner eller delad data från samtidig åtkomst av en avbrottsrutin och huvudtråden.

Förvärv och frisläppning av lås utförs via en kontexthanterare (with-sats), som blockerar tills mutexen är tillgänglig. En icke-blockerande metod Mutex.test() tillhandahålls också.

Exempel:

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-objekt

class mutex.Mutex

Skapar ett olåst mutex-objekt.

release() None

Låser upp mutexen. Utlöser mutex.MutexException om mutexen inte är låst för närvarande.

test() bool

Försöker förvärva mutexen på ett icke-blockerande sätt. Returnerar True vid lyckat resultat och False om mutexen redan är låst.

För att förvärva mutexen på ett blockerande sätt, använd instansen som en kontexthanterare (with-sats). Mutexen frisläpps automatiskt vid utgång.

Undantag

exception mutex.MutexException

Underklass till OSError. Utlöses av Mutex.release när mutexen redan är olåst.