Verrou

Définition, exemples et bonnes pratiques

À retenir

  • Garantit l'accès exclusif à une ressource (mémoire, fichier, périphérique).
  • Empêche la corruption de données causée par des modifications simultanées.
  • Nécessite une gestion rigoureuse pour éviter de ralentir ou de bloquer l'ordinateur.

Un verrou est un mécanisme de sécurité qui garantit qu'une seule tâche (un programme ou un processus) peut accéder à une ressource précise à un instant donné. C'est un peu comme la clé d'une cabine d'essayage : tant que vous avez la clé et que vous êtes à l'intérieur, personne d'autre ne peut entrer pour éviter toute confusion ou erreur.

Étymologie

Issu du latin veruculum signifiant « petite broche » ou « petite pique », le mot désigne physiquement une pièce de métal servant à fermer une porte. En informatique, c'est la traduction directe de l'anglais lock, utilisé dès les débuts de la programmation concurrente pour coordonner l'accès aux données partagées.

Exemples d'usage

  • Une base de données qui empêche deux clients d'acheter simultanément le tout dernier billet d'avion disponible.
  • Un logiciel de traitement de texte qui passe un fichier en « lecture seule » parce qu'un autre utilisateur est déjà en train de le modifier.
  • Le système d'exploitation qui gère l'accès à une imprimante pour éviter que les pages de deux documents différents ne s'entremêlent.

Cas d'usage

On utilise les verrous principalement en programmation (multithreading) pour éviter que deux fils d'exécution ne modifient la même variable en même temps, ainsi que dans la gestion des bases de données et des systèmes de fichiers pour maintenir l'intégrité des informations.

Bonnes pratiques

Il faut toujours veiller à libérer le verrou une fois la tâche terminée, même en cas d'erreur du programme. Un piège classique est l'interblocage (deadlock), où deux programmes s'attendent mutuellement en tenant chacun un verrou dont l'autre a besoin, bloquant ainsi tout le système.

Synonymes

lock mutex exclusion mutuelle sémaphore binaire

Antonymes

accès concurrent accès libre

Conseil

Si vous débutez en programmation, imaginez toujours ce qui se passerait si votre code était exécuté par deux personnes en même temps. Si cela risque de casser vos données, c'est qu'il vous faut un verrou !

Questions fréquentes

Qu'est-ce qu'une condition de concurrence (race condition) ?

C'est le bug qui arrive quand on oublie d'utiliser un verrou : deux processus modifient la même donnée en même temps, rendant le résultat final imprévisible.

Un verrou ralentit-il mon programme ?

Oui, car les autres processus doivent attendre que le verrou soit libéré. Il faut donc verrouiller le moins longtemps possible.

Quelle est la différence avec un mutex ?

Le mutex (Mutual Exclusion) est un type spécifique de verrou utilisé en programmation pour protéger une portion de code.