Différence entre mutex et événement

Différence entre mutex et événement

Événement Mutex vs

En C #, il existe de nombreuses options de synchronisation de filetage différentes. Les deux plus largement utilisés sont mutex et événement. Quelle est exactement la différence entre ces deux? Lequel est une meilleure option?

L'option d'événement est en mesure de donner aux threads la possibilité de bloquer jusqu'à ce qu'un événement soit diffusé ainsi le nom «Event."C'est la même chose que de endormir quelque chose et de ne le réveiller que lorsque quelque chose de signification se produit. Les événements sont différents des mutex car les mutex n'ont pas l'option ou la fonction de signalisation. Les événements peuvent effacer le signal une fois que quelqu'un qui a pu l'attendre a été réveillé. Même les API peuvent permettre à l'option de se bloquer jusqu'à ce qu'un ou tous les différents événements soient signalés. De plus, les événements sont des objets de noyau. Ils ne sont pas «plus légers» par rapport aux mutex. Un événement est essentiellement un objet de noyau ayant deux états. Normalement, un événement signale la venue d'un événement et parfois même la fin d'une opération d'E / S.

«Mutex» signifie exclusion mutuelle. Il s'agit d'une forme de mécanisme de coordination dans les ressources qui sont partagées. Considérez-le comme une forme de transaction. Vous n'êtes pas obligé d'attendre, même si vous souhaitez accéder à quelques ressources partagées (uniquement dans le cas où d'autres y accéderont déjà) que vous bloquez. Un mutex se compose de deux États bien qu'il existe pour mettre en œuvre une exclusion mutuelle. C'est pour quand vous souhaitez protéger une étendue de code qui met généralement à jour une ressource partagée de la pièce dans laquelle le mutex est revendiqué dans la partie dans laquelle il sera publié. Cela conduit au fait qu'aucun autre fil ne peut passer par la section.

Les personnes qui ont essayé de simuler un événement à l'aide d'un mutex ont dû rencontrer le problème dans lequel dès que la serrure est acquise ou que l'événement a été signalé, la personne garde tout le monde à l'extérieur jusqu'à ce que la verrouille soit libérée. Ce n'est pas la sémantique d'un événement signalé. Un événement peut rester affiché et une forme de porte sera disponible pour tous les tests de fil dans l'événement sans verrouillage. Mutex engagé dans la synchronisation interproce est dans l'objet en mode noyau. Les événements conçus pour la synchronisation multithread sous une méthode sont dans l'objet en mode utilisateur.

L'objet mutex est trop lourd et trop général. Les objets d'événement sont beaucoup plus légers. La synchronisation du mode utilisateur est utilisée dans la plupart des situations en raison de la raison pour laquelle il donne moins de cycles CPU. Mutex ressemble beaucoup à une section critique et est utilisé pour synchroniser l'accès aux ressources partagées. Les événements ont une fonction totalement différente car ils sont utilisés pour synchroniser les tâches ou pour la gestion de la planification des tâches pour certaines personnes.

Les événements sont plus une variable de condition, contrairement à Mutex, qui ressemble plus à un
surveiller une partie de la terminologie, ou il peut s'agir d'une forme traditionnelle de sémaphore / mutex.

Résumé:

1.L'option d'événement est en mesure de donner aux threads la possibilité de bloquer jusqu'à ce qu'un événement soit diffusé, donc le nom «événement."

2.Un événement est essentiellement un objet de noyau ayant deux états. Normalement, un événement signale la venue d'un événement et parfois même la fin d'une opération d'E / S.

3.«Mutex» signifie exclusion mutuelle. Il s'agit d'une forme de mécanisme de coordination dans les ressources qui sont partagées.

4.Mutex engagé dans la synchronisation interproce est dans l'objet en mode noyau. Les événements conçus pour la synchronisation multithread sous une méthode sont dans l'objet en mode utilisateur.

5.Les événements sont plus une variable de condition, contrairement au mutex, qui ressemble plus à un
surveiller une partie de la terminologie, ou il peut s'agir d'une forme traditionnelle de sémaphore / mutex.