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 достатньо двох потоків і двох ресурсів.