Skip to main content

Vad är en mutex?

Ett ömsesidigt uteslutningsobjekt, eller mutex, är ett objekt skapat för användning i datorprogram.Den väsentliga funktionen med mutex är att göra det möjligt för en multipel 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 sker 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 kallas fram 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 kan alla andra trådar i programmet som kräver denna resurs 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 mutex -funktionen tillåter nästa tråd i kön 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.