Co je to MUTEX?
Objekt vzájemného vyloučení neboli MUTEX je objekt vytvořený pro použití v počítačových programech. Základní funkcí MUTEXu je umožnit více vláknům programu využívat jeden zdroj. Obecně platí, že funkčností objektů vzájemného vyloučení je umožnit toto použití jediného zdroje vytvořením prostředí, ve kterém je přístup ke zdroji neustále předáván tam a zpět mezi různými aspekty programu.
Proces aktivace a vytvoření MUTEXu probíhá při otevření aplikace počítačového programu. Program v podstatě vytvoří MUTEX a spojí jej se specifickým zdrojem, který je potřebný pro efektivní fungování otevřeného programu. Jakmile jsou prostředky vyvolány, operační systém přiřadí MUTEXu jedinečný název a použije jej k identifikaci procesu, dokud zůstane program otevřený.
Jakmile je MUTEX aktivován a pojmenován pro relaci, může mít přístup k jakémukoli jinému vláknu programu, který vyžaduje tento prostředek, přestože je prostředek již aktivně používán jiným vláknem. Označením potřeby zdroje začne funkce MUTEX střídat přístup zdroje sem a tam mezi vlákny. Pro koncového uživatele, tento proces je transparentní. Pro všechny praktické záměry a účely se zdá, že dva uživatelé nebo dvě vlákna nás dělají ze stejného zdroje současně.
I když rychlost přenosu přístupu je tak rychlá, že není ani znatelná pro koncového uživatele, je třeba poznamenat, že kdykoli je zdroj používán, je efektivně uzamčen k jednomu vláknu v sekvenci. Další vlákno vyžadující použití prostředku vydá požadavek, který přejde do fronty a zůstane tam, dokud první vlákno nedokončí aktivním použitím. V tomto okamžiku je prostředek odemčen a funkce MUTEX umožňuje další vlákno ve frontě aktivního přístupu. Pokud je aktivní třetí vlákno a potřebuje zdroj, MUTEX také toto vlákno nařadí do fronty a udělí přístup na základě rotace.