Mutex vs Semaphore
Mutex je analogan jedinstvenom ključu u sobi. Osoba koja drži ključ koji je analogan niti, jedina je osoba koja može imati pristup sobi. Osoba s pristupom tada će morati odustati od ključa za sljedeću osobu u redu. Stoga muteks može otpustiti samo nit koja ga stekne.
Mutex se obično koristi za serializiranje pristupa odjeljku koda povratnika "" vrste koda koji se ne može izvršiti s više niti odjednom. U odjeljak je dopušten samo jedan konac. To prisiljava ostale niti u redu čekanja. Prije nego što nit dobije pristup, morat će pričekati dok nit prije nego što odustane od odjeljka.
Koristeći istu analogiju u mutexu, semafori su broj sličnih tipki kojima se može pristupiti istom broju soba sa sličnim bravama. Semafor ili vrijednost broja semafora ovisit će o broju ljudi (niti) koji ulaze u sobu ili izlaze iz nje. Ako postoji 5 soba i sve su zauzete, tada je broj semafora jednak nuli. Ako dvojica napuste sobu, tada je broj dva i dva su ključa dana sljedeća dva u redu čekanja.
Uz spomenuto, semafori mogu istovremeno signalizirati bilo koji niz ili postupak i idealni su za aplikacije koje zahtijevaju sinkronizaciju. Unatoč tome, semafori se koriste za učinkovito ograničavanje broja istodobnih korisnika zajedničkog resursa na temelju najvećeg broja semafora.
U osnovi, muteks se može smatrati semaforom koji ima vrijednost jednaka.
Smanjenje i priraštaj semafora ovise o tome da li niti traže pristup zajedničkom resursu ili napuštaju odjeljak.
U teoriji, mutex i (binarni) semafori su semantički slični. Implementacija muteksa može se obaviti semaforima, tako da je obrnuto. Međutim, u praktičnom smislu mogu biti malo drugačiji.
Muteksi su namijenjeni samo za međusobno isključenje, a binarni semafori mogu se koristiti za međusobno isključenje i obavještavanje o događajima. Iako su vrlo slične u pogledu implementacije i opće semantike, koriste se različito.
Sažetak:
1. Mutex se obično koristi za serializiranje pristupa zajedničkom resursu, dok semafor predstavlja broj istodobnih pristupa.
2. Mutex je poput semafora s brojem jedan.
3. Mutex omogućava pristup samo jednom niti, a bilo koja nit ili postupak istovremeno mogu signalizirati semafore.
4. Semafore su idealne za sinkronizaciju i često se koriste za obavijesti o događajima i međusobno isključivanje dok se mutex primjenjuje samo za međusobno isključivanje.