Tous les articles

20 octobre 2026 · 1 min de lecture

Deadlock : quand les verrous bloquent tout

Le verrou qui règle la race condition a un prix : deux virements croisés peuvent s'attendre pour toujours. Le deadlock, expliqué avec Alice et Bob.

  • tech
  • bases

« Avec des verrous partout, on est tranquilles, non ? » Justement, non : les verrous peuvent tout bloquer.

L'exemple : deux virements croisés

Alice vire de l'argent à Bob, et Bob à Alice, en même temps. Chaque virement verrouille d'abord un compte, puis demande l'autre :

  1. Alice verrouille le compte A.
  2. Bob verrouille le compte B.
  3. Puis chacun demande le compte de l'autre.

Personne ne lâche : Alice tient A et attend B, Bob tient B et attend A. Les deux attendent, pour toujours. C'est un deadlock (un interblocage). Ce qui le crée, ce n'est pas un croisement : c'est un cycle, où chacun tient une ressource tout en demandant celle de l'autre.

La solution : le même ordre pour tous

Tout le monde verrouille dans le même ordre : le compte A, puis le B. Alice prend A. Bob, qui veut aussi A, attend les mains vides. Alice prend B, finit, relâche A et B. Puis Bob passe.

À retenir

Même ordre pour tous : plus de cycle, donc plus de deadlock. Bob peut encore attendre un moment, mais plus jamais pour toujours.

Bon à savoir : les bases de données comme PostgreSQL détectent ce genre de cycle et annulent l'une des transactions, qu'il faut alors rejouer.