mutex — mutex module¶
Модуль mutex надає примітив взаємного виключення для захисту критичних секцій коду або спільних даних від одночасного доступу підпрограми обробки переривань та основного потоку.
Захоплення та звільнення блокування виконується через менеджер контексту (оператор with), який блокується до тих пір, поки м’ютекс не стане доступним. Також надається неблокуючий метод Mutex.test().
Приклад:
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 object¶
- class mutex.Mutex¶
Створює розблокований об’єкт м’ютекса.
- release() None¶
Розблоковує м’ютекс. Викидає
mutex.MutexException, якщо м’ютекс наразі не заблокований.
Винятки¶
- exception mutex.MutexException¶
Підклас
OSError. ВикидаєтьсяMutex.release, коли м’ютекс вже розблокований.