mutex — module mutex¶
Le module mutex fournit une primitive d’exclusion mutuelle pour protéger les sections critiques de code ou les données partagées contre les accès concurrents par une routine de service d’interruption et le thread principal.
L’acquisition et la libération du verrou s’effectuent via un gestionnaire de contexte (instruction with), qui bloque jusqu’à ce que le mutex soit disponible. Une méthode Mutex.test() non bloquante est également fournie.
Exemple
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()
classe Mutex – objet mutex¶
- class mutex.Mutex¶
Crée un objet mutex déverrouillé.
- release() None¶
Déverrouille le mutex. Lève
mutex.MutexExceptionsi le mutex n’est pas actuellement verrouillé.
- test() bool¶
Tente d’acquérir le mutex de manière non bloquante. Renvoie
Trueen cas de succès etFalsesi le mutex est déjà verrouillé.Pour acquérir le mutex de manière bloquante, utilisez l’instance comme gestionnaire de contexte (instruction
with). Le mutex est libéré automatiquement à la sortie.
Exceptions¶
- exception mutex.MutexException¶
Sous-classe de
OSError. Levée parMutex.releaselorsque le mutex est déjà déverrouillé.