12 из 95 вопросов — случайная выборка · Ответьте на все и узнайте свой результат
Функция захватывает threading.Lock и затем вызывает другую функцию, которая также пытается захватить тот же lock. Что происходит?
threading.Lock
Программа deadlock'ится, потому что threading.Lock не может быть захвачен снова тем же потоком
Второй захват проходит без проблем, потому что тот же поток уже удерживает lock
Python выбрасывает RuntimeError чтобы предотвратить рекурсивный захват lock'а
RuntimeError
Lock автоматически升级 на RLock во время выполнения
RLock