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, са достатъчни две нишки и два ресурса.