mutex — mutex-moduuli

mutex-moduuli tarjoaa keskinäisen poissulkemisen primitiivin, joka suojaa koodin kriittisiä osia tai jaettua dataa keskeytyspalvelurutiinin ja pääsäikeen samanaikaiselta käytöltä.

Lukon hankinta ja vapautus suoritetaan kontekstinhallinnan kautta (with-lause), joka estyy, kunnes mutex on saatavilla. Lisäksi tarjotaan estämätön Mutex.test()-metodi.

Esimerkki:

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

class mutex.Mutex

Luo lukitsemattoman mutex-objektin.

release() None

Vapauttaa mutexin. Nostaa mutex.MutexException-poikkeuksen, jos mutex ei ole tällä hetkellä lukittuna.

test() bool

Yrittää hankkia mutexin estämättömällä tavalla. Palauttaa True onnistuessaan ja False, jos mutex on jo lukittuna.

Hankkiaksesi mutexin estävällä tavalla, käytä instanssia kontekstinhallintaobjektina (with-lause). Mutex vapautetaan automaattisesti poistuttaessa.

Poikkeukset

exception mutex.MutexException

OSError-poikkeuksen aliluokka. Nostetaan Mutex.release-metodilla, kun mutex on jo lukitsematon.