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.