Sobes.tech
Junior — Middle

Quelle est la quantité minimale de threads nécessaires pour qu'un blocage mutuel (Deadlock) se produise?

sobes.tech IA

Réponse de l'IA

Le nombre minimum de threads nécessaires pour qu’un interblocage (Deadlock) se produise est de deux.

Un interblocage se produit lorsque deux ou plusieurs threads maintiennent simultanément des ressources et que chacun attend la libération d’une ressource détenue par un autre thread. Par exemple :

  • Le thread A verrouille la ressource 1 et attend la ressource 2.
  • Le thread B verrouille la ressource 2 et attend la ressource 1.

Les deux threads sont bloqués indéfiniment, car chacun attend la libération d’une ressource détenue par l’autre.

Exemple en pseudocode :

// Thread 1
lock(resource1)
wait()
lock(resource2)

// Thread 2
lock(resource2)
wait()
lock(resource1)

Ainsi, pour un deadlock, il suffit de deux threads et deux ressources.