Использование threading.Lock в качестве менеджера контекста
В документации по многопоточному модулю говорится:
Все объекты, предоставленные этим модулем, которые имеют методы acquire()
и release()
, могут использоваться в качестве контекстных менеджеров для оператора with
. Метод acquire()
вызывается при входе в блок, а метод release()
вызывается при выходе из блока.
Мне было интересно, если он вызывается в режиме блокировки или неблокирования?
Ответы
Ответ 1
Из источника CPython видно, что он вызывается с аргументами по умолчанию, то есть в режиме блокировки.
В частности, вы хотите посмотреть методы __enter__()
, которые вызываются в начале блока with
, и __exit__()
, которые вызываются в конце. ,