PyQt4.QtCore.
QMutex
([mode=QtCore.QMutex.NonRecursive])позволяет блокировать ресурс.
mode может быть:
QMutex.NonRecursive - nоток может запросить блокировку только единожды; после снятия блокировка может быть запрошена снова
QMutex.Recursive - поток может заnросить блокировку несколько раз; чтобы nолностью снять блокировку, следует вызвать метод unlock()
соответствующее количество раз
lock
()устанавливает блокировку. Если ресурс уже заблокирован, то работа текущего потока приостанавливается до снятия блокировки.
tryLock
([time])устанавливает блокировку. Если блокировка успешно установлена, возвращает True, иначе если заблокирован другим потоком - False.
time (int) – время ожидания в миллисекундах. можно задать отрицательное значение, тогда метод будет аналогичен lock()
unlock
()снимает блокировку
PyQt4.QtCore.
QMutexLocker
(mutex)принимает QMutex
объект, блокирует его, и при вызове деструктора данного объекта, разблокирует. Также можно использовать как контекстный менеджер внутри with … as …: