Что такое `threading.RLock`?

threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.

Короткий ответ

Что ответить на собеседовании

threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.

Подробный разбор

Ответ с пояснениями

threading.RLock — повторно захватываемая блокировка: владеющий поток может получить её несколько раз. Другие потоки ждут, пока владелец выполнит соответствующее число освобождений.

Она полезна, когда защищённый метод вызывает другой метод с той же блокировкой. Используйте with lock, чтобы освобождение не зависело от успешного завершения тела. Обычный Lock при таком повторном захвате может заблокировать поток. RLock не защищает от неверного порядка нескольких разных locks и не заменяет продуманную границу критической секции.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее