Mutex

Definition - Was bedeutet Mutex?

Mutex in C # ist eine in der .NET Framework-Klassenbibliothek definierte Klasse, mit der verhindert werden kann, dass ein Codeblock gleichzeitig von mehreren Threads ausgeführt wird, die in einem oder mehreren Prozessen ausgeführt werden.

Mutex wird als Synchronisationsprimitiv in Situationen verwendet, in denen eine Ressource von mehreren Threads gleichzeitig gemeinsam genutzt werden muss. Benannte Mutex-Objekte werden für die Synchronisation zwischen Prozessen verwendet, da mehrere Anwendungen auf dasselbe Mutex-Objekt zugreifen können.

Die Mutex-Klasse soll eine gemeinsam genutzte Ressource wie Speicher, Dateihandle oder Netzwerkverbindung vor dem gleichzeitigen Zugriff mehrerer Threads oder Prozesse schützen. Es wird in der Sperranweisung verwendet, um den serialisierten Zugriff auf Ressourcen bereitzustellen und den gegenseitigen Ausschluss innerhalb der kritischen Codeabschnitte sicherzustellen. Es hilft, die unvorhersehbare Datenbeschädigung zu verhindern, die auftreten kann, wenn keine Synchronisierung erfolgt. Es wird häufig verwendet, um jeweils nach einer einzelnen Instanz einer Anwendung zu suchen.

Mutex ist eine abgekürzte Form der gegenseitigen Ausschließung.

Technische.me erklärt Mutex

Mutex bietet mehreren Threads Zugriff auf eine gemeinsam genutzte Ressource, sodass der zweite Thread, der einen Mutex abrufen muss, der bereits von einem anderen Thread erfasst wurde, warten muss, bis der erste Thread den Mutex freigibt. Es sollte darauf geachtet werden, dass ein Thread nicht versucht, einen Mutex zu erfassen, den er bereits enthält, da dies zu einem Deadlock führen kann.

Beispielsweise kann ein Mutex verwendet werden, um exklusiven Zugriff auf eine Datei zu gewähren, die in einer Multithread-Umgebung gelesen oder geändert werden muss.

Die Mutex-Klasse verfügt über einen Konstruktor, mit dem Schlüsselparameter eines neuen Mutex-Objekts während seiner Initialisierung angegeben werden können, z. B. Name, Besitzinformationen und die Zugriffssteuerungssicherheit, die auf den benannten Mutex angewendet werden soll.

Während Lock-Anweisungen verwendet werden können, um Threads innerhalb eines einzelnen Prozesses zu synchronisieren, wird Mutex über Prozessgrenzen hinweg verwendet.

Da die Mutex-Klasse ein Wrapper für ein Win32-Konstrukt ist, sind Interop-Übergänge erforderlich, die die Leistung beeinträchtigen. Daher ist es keine gute Wahl, es sei denn, es ist aus Gründen wie der Synchronisation über Prozessgrenzen hinweg erforderlich.

Diese Definition wurde im Kontext von C # geschrieben