Skip to main content

Qu'est-ce qu'un mutex?

Un objet d'exclusion mutuel, ou mutex, est un objet créé pour une utilisation dans les programmes informatiques.La fonction essentielle de Mutex est de permettre à un fil de programme multiple d'utiliser une seule ressource.Généralement, la fonctionnalité des objets d'exclusion mutuelle est de permettre cette utilisation d'une seule ressource en créant un environnement où l'accès à la ressource est continuellement transmis entre les différents aspects du programme.

Le processus d'activation et de création d'un mutex a lieu lorsque l'application du programme informatique est ouverte.Essentiellement, le programme créera le mutex et le reliera à une ressource spécifique nécessaire pour la fonction efficace du programme ouvert.Comme les ressources sont appelées, le système d'exploitation attribuera un nom unique au mutex et l'utilisera pour identifier le processus aussi longtemps que le programme reste ouvert.

Une fois que le mutex est activé et nommé pour la session, tout autre thread du programme qui nécessite cette ressource peut avoir accès, même si la ressource est déjà utilisée par un autre thread.En indiquant un besoin de ressource, la fonction mutex commencera à alterner l'accès de la ressource dans les deux sens entre les threads.Pour l'utilisateur final, ce processus est transparent.À toutes fins utiles, il semble que deux utilisateurs ou deux threads nous rendent simultanément la même ressource.

Bien que la vitesse du transfert d'accès soit si rapide qu'elle n'est même pas visible à l'utilisateur final, il convient de noter que chaque fois qu'une ressource est utilisée, elle est effectivement verrouillée sur le thread unique de la séquence.Un autre thread nécessitant l'utilisation de la ressource publiera une demande qui va dans une file d'attente et y restera jusqu'à ce que le premier thread ait terminé avec l'utilisation active.À ce stade, la ressource est déverrouillée et la fonction Mutex permet le thread suivant dans l'accès actif de la file d'attente.Si un troisième thread est actif et a besoin de la ressource, Mutex alignera également ce fil dans la file d'attente et accordera l'accès à la rotation.