Sobes.tech
Junior — Middle
98

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

Сұралған компаниялар
СБЕРСБЕР
СБЕР СболСБЕР Сбол

AI-дан жауап

sobes.tech AI

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

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

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

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

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

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

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

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