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