Junior — Middle
Qual è il numero minimo di thread necessari per verificarsi un deadlock?
sobes.tech AI
Risposta dell'AI
La quantità minima di thread necessaria per verificare un deadlock è due.
Un deadlock si verifica quando due o più thread mantengono risorse contemporaneamente e ciascuno aspetta che venga liberata una risorsa detenuta dall’altro. Ad esempio:
- Il thread A blocca la risorsa 1 e aspetta la risorsa 2.
- Il thread B blocca la risorsa 2 e aspetta la risorsa 1.
Entrambi i thread rimangono bloccati indefinitamente, poiché ciascuno aspetta che l’altro liberi una risorsa.
Esempio in pseudocodice:
// Thread 1
lock(risorsa1)
wait()
lock(risorsa2)
// Thread 2
lock(risorsa2)
wait()
lock(risorsa1)
Pertanto, per un deadlock, sono sufficienti due thread e due risorse.