Sobes.tech
Junior — Middle

Какво е минималното количество нишки, необходимо за възникване на взаимна блокировка (Deadlock)?

sobes.tech AI

Отговор от AI

Минималният брой нишки, необходим за възникване на взаимна блокировка (Deadlock), е две.

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

  • Нишка A заема ресурс 1 и очаква ресурс 2.
  • Нишка B заема ресурс 2 и очаква ресурс 1.

И двете нишки остават блокирани завинаги, тъй като всяка очаква освобождаването на ресурс, който държи другата.

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

// Нишка 1
lock(ресурс1)
wait()
lock(ресурс2)

// Нишка 2
lock(ресурс2)
wait()
lock(ресурс1)

Следователно, за deadlock, са достатъчни две нишки и два ресурса.