Vad är en mutex?
Ett ömsesidigt uteslutningsobjekt, eller mutex, är ett objekt som skapas för användning i datorprogram. Den väsentliga funktionen med mutex är att göra det möjligt för en flera programtråd att använda en enda resurs. I allmänhet är funktionaliteten för ömsesidiga uteslutningsobjekt att tillåta denna användning av en enda resurs genom att skapa en miljö där tillgången till resursen kontinuerligt överförs fram och tillbaka mellan de olika aspekterna av programmet.
Processen för att aktivera och skapa en mutex äger rum när datorprogrammet öppnas. I huvudsak kommer programmet att skapa mutex och relatera det till en specifik resurs som behövs för den öppna programmets effektiva funktion. När resurserna uppmanas tilldelar operativsystemet ett unikt namn till mutex och använder det för att identifiera processen så länge programmet förblir öppet.
När mutexen har aktiverats och uppkallas efter sessionen, alla andra trådar i programmet som kräver dettaResurs kan ha tillgång, även om resursen redan är i aktiv användning av en annan tråd. Genom att indikera ett behov av resursen börjar mutexfunktionen växla åtkomst till resursen fram och tillbaka mellan trådarna. För slutanvändaren är denna process transparent. För alla praktiska syften verkar det som om två användare eller två trådar gör oss till samma resurs samtidigt.
Medan hastigheten för överföringen av åtkomst är så snabb att den inte ens märks för slutanvändaren, bör det noteras att när en resurs används, är den effektivt låst till den ena tråden i sekvensen. En annan tråd som kräver användning av resursen kommer att utfärda en begäran som kommer att gå i en kö och förbli där tills den första tråden är klar med aktiv användning. Vid den tidpunkten låses resursen upp och mutexfunktionen tillåter nästa tråd i Queue aktiv åtkomst. Om en tredje tråd är aktiv och behöver resursen, kommer Mutex också att ställa in denna tråd i kön och ge åtkomst på en roterande basis.