2017-06-16 5 views
0

Gibt es einen Unterschied zwischen den beiden folgenden Variablen:Unterschied zwischen Mutex und Semaphore = 1?

Mutex m; 
Semaphore s = 1; 

Ich denke, dass sie gleich sind, aber in einem Video, das ich über eine Formel bin gerade an den Leser/Schreiber Problem, sagt er 5 Semaphore zu verwenden, von denen jeder von ihnen beginnend bei dem Wert von 1. Ich finde das interessant, weil ich dachte, wenn Sie einen Semaphor im Wert von 1 haben, dann würden Sie einfach einen Mutex verwenden.

+0

@DougCurrie Vielen Dank. Ich hätte nie gewusst, * Binary Semaphore * zu suchen. Dies hat alle Informationen, die ich brauchte. – Hatefiend

Antwort

0

Denken Sie an Mutex als Teil einer Definition eines Semaphors.

Es gibt eine gute Antwort auf Stack Overflow hier: Difference between binary semaphore and mutex.

Mutex kann nur von Thread freigegeben werden, die es erworben hatte, während Sie können Semaphore von einem anderen Thread (oder Prozess) signalisieren, so Semaphore besser geeignet für einige Synchronisationsprobleme wie Erzeuger-Verbraucher sind.

Verwandte Themen