Использование threading.Lock в качестве менеджера контекста

В документации по многопоточному модулю говорится:

Все объекты, предоставленные этим модулем, которые имеют методы acquire() и release(), могут использоваться в качестве контекстных менеджеров для оператора with. Метод acquire() вызывается при входе в блок, а метод release() вызывается при выходе из блока.

Мне было интересно, если он вызывается в режиме блокировки или неблокирования?

Ответ 1

Из источника CPython видно, что он вызывается с аргументами по умолчанию, то есть в режиме блокировки.

В частности, вы хотите посмотреть методы __enter__(), которые вызываются в начале блока with, и __exit__(), которые вызываются в конце. ,