mutex — moduł mutex¶
Moduł mutex dostarcza prymityw wzajemnego wykluczania do ochrony sekcji krytycznych kodu lub współdzielonych danych przed równoczesnym dostępem ze strony procedury obsługi przerwania i wątku głównego.
Pozyskiwanie i zwalnianie blokady odbywa się za pomocą menedżera kontekstu (instrukcja with), który blokuje do czasu, aż mutex stanie się dostępny. Dostępna jest również nieblokująca metoda Mutex.test().
Przykład:
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()
klasa Mutex – obiekt mutex¶
- class mutex.Mutex¶
Tworzy odblokowany obiekt mutex.
- release() None¶
Odblokowuje mutex. Zgłasza
mutex.MutexException, jeśli mutex nie jest obecnie zablokowany.
Wyjątki¶
- exception mutex.MutexException¶
Podklasa
OSError. Zgłaszana przezMutex.release, gdy mutex jest już odblokowany.