Mutex proti Semaphore
Mutex je analogen enemu ključu sobe. Oseba, ki drži ključ, ki je analogen niti, je edina, ki ima dostop do sobe. Oseba z dostopom bo morala nato ključ odpovedati naslednji osebi v vrsti. Zato lahko muteks sprosti samo nit, ki ga pridobi.
Mutex se ponavadi uporablja za serijski dostop do odseka kode povratnika "" neke vrste kode, ki je ni mogoče hkrati izvesti več niti. V odsek je dovoljena samo ena nit. To prisili ostale niti v čakalni vrsti, da počakajo. Preden nit pridobi dostop, bo moral počakati, da nit, preden odpove odsek.
Po enaki analogiji v mutexu so semaforje število podobnih tipk, ki lahko dostopajo do istega števila sob s podobnimi ključavnicami. Semafor ali vrednost števila semafor bo odvisna od števila ljudi (niti), ki vstopijo v sobo ali izstopijo iz nje. Če je 5 sob in so vse zasedene, potem je število semafor nič. Če dva zapustijo sobo, potem je štetje in dva ključa sta dana naslednjim dvema v čakalni vrsti.
Glede na to lahko semafor istočasno signalizira kateri koli nit ali postopek in je idealen za aplikacije, ki zahtevajo sinhronizacijo. Kljub temu se semafore uporabljajo za učinkovito omejevanje števila sočasnih uporabnikov skupnega vira na podlagi največjega števila semafor..
Torej v bistvu lahko muteks velja za semafor, ki ima vrednost ena.
Zmanjšanje in prirast semaforja sta odvisna od tega, ali niti zahtevajo dostop do skupnega vira ali zapuščajo razdelek.
Teoretično sta si mutex in (binarni) semafor semantično podobna. Izvajanje mutexa je mogoče s semaforji in tako je tudi obratno. V praktičnem smislu pa so lahko nekoliko drugačni.
Mutexi naj bi se uporabljali samo za medsebojno izključitev, binarni semaforji pa za medsebojno izključitev in obveščanje o dogodkih. Čeprav so si po izvedbi in splošni semantiki zelo podobni, jih uporabljamo drugače.
Povzetek:
1. Mutex se običajno uporablja za serializacijo dostopa do skupnega vira, medtem ko je semafor številni sočasni dostopi.
2. Mutex je kot semafor s štetjem enega.
3. Mutex omogoča dostop samo enemu niti, medtem ko lahko semafor istočasno signalizira kateri koli nit ali postopek.
4. Semafore so idealne za sinhronizacijo in se pogosto uporabljajo za obveščanje o dogodkih in medsebojno izključitev, medtem ko se mutex uporablja samo za medsebojno izključitev.