Sobes.tech
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.