Sobes.tech
Junior — Middle

Care este numărul minim de fire necesare pentru apariția blocajului mutual (Deadlock)?

sobes.tech AI

Răspuns de la AI

Numărul minim de fire de execuție necesar pentru a produce un deadlock este două.

Un deadlock apare atunci când două sau mai multe fire de execuție dețin simultan resurse și fiecare așteaptă eliberarea unei resurse deținută de altul. De exemplu:

  • Firul A blochează resursa 1 și așteaptă resursa 2.
  • Firul B blochează resursa 2 și așteaptă resursa 1.

Ambele fire sunt blocate pentru totdeauna, deoarece fiecare așteaptă eliberarea unei resurse deținută de celălalt.

Exemplu în pseudocod:

// Firul 1
lock(resursa1)
wait()
lock(resursa2)

// Firul 2
lock(resursa2)
wait()
lock(resursa1)

Prin urmare, pentru deadlock, sunt suficiente două fire și două resurse.