Sobes.tech
Назад к вопросам
Junior — Middle
78

Какое минимальное количество потоков необходимо для возникновения взаимной блокировки (Deadlock)?

Компании, где спрашивали
СБЕРСБЕР
СБЕР СболСБЕР Сбол

Ответ от нейросети

sobes.tech AI

Минимальное количество потоков, необходимое для возникновения взаимной блокировки (Deadlock), — два.

Взаимная блокировка происходит, когда два или более потока одновременно удерживают ресурсы и каждый из них ожидает освобождения ресурса, захваченного другим потоком. Например:

  • Поток A захватывает ресурс 1 и ожидает ресурс 2.
  • Поток B захватывает ресурс 2 и ожидает ресурс 1.

Оба потока блокируются навсегда, так как каждый ждет освобождения ресурса, который удерживает другой.

Пример на псевдокоде:

// Поток 1
lock(resource1)
wait()
lock(resource2)

// Поток 2
lock(resource2)
wait()
lock(resource1)

Таким образом, для deadlock достаточно двух потоков и двух ресурсов.