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