Встречается на 1% собеседований по Python
Какие знаешь способы разрешения Deadlock
Вот основные способы разрешения deadlock в Python:
- Упорядоченное получение блокировок - всегда запрашивать блокировки в одном порядке:
python
lock1 = threading.Lock()
lock2 = threading.Lock()
def thread1():
with lock1:
with lock2:
# работа с ресурсами
def thread2():
with lock1: # тот же порядок
with lock2:
# работа с ресурсами- Таймауты - использовать
acquire(timeout)вместо бесконечного ожидания:
python
if lock1.acquire(timeout=1):
try:
if lock2.acquire(timeout=1):
# работа
finally:
lock1.release()-
Разрушение deadlock - принудительное освобождение ресурсов через watchdog timer.
-
Избегание вложенных блокировок - перепроектирование кода для минимизации блокировок.
-
Использование RLock - реентерабельные блокировки для одного потока.
-
Thread-safe структуры - использование Queue вместо ручных блокировок.
Важно: лучшая стратегия - профилактика через проектирование системы без условий для deadlock.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы