Sobes.tech
Back to questions
Junior — Middle
80

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

Companies where asked
СБЕРСБЕР
СБЕР СболСБЕР Сбол

Answer from AI

sobes.tech AI

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

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

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

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

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

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

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

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