Встречается на собеседованиях • сегодня
Как и когда происходит Deadlock
Deadlock возникает, когда два или более потока/процесса бесконечно ожидают ресурсы, занятые друг другом, создавая циклическую зависимость. Основные условия для deadlock:
- Взаимное исключение - ресурсы не могут быть разделены
- Удержание и ожидание - процесс держит ресурс и ждет другой
- Отсутствие вытеснения - ресурсы нельзя отобрать
- Циклическое ожидание - круговая зависимость процессов
Пример:
python
import threading
lock1 = threading.Lock()
lock2 = threading.Lock()
def thread1():
with lock1:
with lock2:
print("Thread1")
def thread2():
with lock2:
with lock1:
print("Thread2")
t1 = threading.Thread(target=thread1)
t2 = threading.Thread(target=thread2)
t1.start(); t2.start()Здесь потоки могут заблокироваться: t1 захватит lock1 и будет ждать lock2, а t2 захватит lock2 и будет ждать lock1.

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