Usage des verrous mutuels exclusifs Verrou mutuel exclusif

1. Présentation et définition

Si on imagine un environnement massivement multithread avec une ressource partagée, a priori mutable, on va au-devant de gros problèmes de performances. En effet, comment faire si n threads veulent accéder régulièrement à une ressource mutable r ?

On sait que si on n’organise rien, on va forcément rencontrer des problèmes de concurrence, plusieurs threads tentant de lire la même ressource en même temps. Et cela paraît surtout et au premier abord en contradiction avec les principes de propriété de Rust.

On pourrait imaginer qu’un thread serait chargé de lire en permanence la ressource et enverrait régulièrement la valeur clonée aux threads intéressés grâce à des canaux. Cela paraît au premier abord fastidieux, mais ce pourrait être une première solution.

La bonne solution est en réalité le verrou mutex ou plutôt verrou mutuel exclusif. Les personnes ayant programmé des threads en langage C++ sont sans doute familiarisées avec cette notion. Pour les autres, la définition est assez simple : Mutex

« Un mutex est un dispositif qui oblige les threads intéressés par une ressource donnée à se placer dans une file d’attente. Le mutex gérant évidemment l’avancée de cette file...

Pour consulter la suite, découvrez le livre suivant :
couv_EIRUST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Communication entre threads
Suivant
Introduction