threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.
Что такое `threading.RLock`?
threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.
Она полезна, когда защищённый метод вызывает другой метод с той же блокировкой. Используйте with lock, чтобы освобождение не зависело от успешного завершения тела. Обычный Lock при таком повторном захвате может заблокировать поток. RLock не защищает от неверного порядка нескольких разных locks и не заменяет продуманную границу критической секции.
Источник: docs.python.org.