mutex — modulo mutex#

Il modulo mutex fornisce una primitiva di mutua esclusione per proteggere le sezioni critiche di codice o i dati condivisi dall’accesso concorrente da parte di una routine di servizio di interrupt e del thread principale.

L’acquisizione e il rilascio del lock vengono eseguiti tramite un context manager (istruzione with), che si blocca finché il mutex non è disponibile. È fornito anche un metodo non bloccante Mutex.test().

Esempio:

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 – oggetto mutex#

class mutex.Mutex#

Crea un oggetto mutex sbloccato.

release() None#

Sblocca il mutex. Solleva mutex.MutexException se il mutex non è attualmente bloccato.

test() bool#

Tenta di acquisire il mutex in modo non bloccante. Restituisce True in caso di successo e False se il mutex è già bloccato.

Per acquisire il mutex in modo bloccante, usa l’istanza come context manager (istruzione with). Il mutex viene rilasciato automaticamente all’uscita.

Eccezioni#

exception mutex.MutexException#

Sottoclasse di OSError. Sollevata da Mutex.release quando il mutex è già sbloccato.