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.