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.