Frage

Ich frage mich, ob es überhaupt Sinn machen würde, einen Mutex zu verwenden oder Semaphore, wenn nur ein Thread?.

Danke für Ihre Hilfe.

War es hilfreich?

Lösung

I Design Fadenschutz in meine Komponenten, weil sie sind wiederverwendbar und skalierbare Komponenten sollten Arbeiten in jeder Umgebung ich realistisch antizipieren. Viele Male sind sie zunächst in einer einzigen Thread-Umgebung verwendet. Oft werden die Rahmen der Implementierung erweitert, um mehr Themen zu umfassen. Dann habe ich zu den Ressourcen nicht jagen aus den neuen Zugriffsszenarien zu schützen.

Andere Tipps

Mutex kann Sinn machen, da Mutex für systemweite gemeinsame Nutzung verwendet werden, anstelle der internen prozessweiten Sharing. Zum Beispiel können Sie eine Mutex an eine Anwendung zu verhindern, dass zweimal gestartet .

Dies kann etwas da sein, aber sagen wir mal Sie eine rekursive Funktion schreiben, und Sie wollen, dass jeder Ebene mit einem separaten Ressource zu registrieren. So können Sie die Verantwortung für die Säuberung der Ressource an einem Ort (Der Ressourcenpool) halten.

klingt wie eine Fangfrage. Technisch gesehen, ja. Ein benanntes Mutex kann verwendet werden, um mehrere Prozesse zu synchronisieren einen einzigen Thread in jedem enthalten.

Sie können mit system-wide semaphores (und sogar mutexes) inter-process communication tun.

Sie kann das Signal von einem Single-Thread-Prozess zu einem anderen Single-Thread-Prozess durch acquire()/release()-ing auf einer benannten Semaphore, zum Beispiel.

Im Fall unterstützt die Umwelt-System-Interrupts es fügt nicht-lineares Verhalten. Semaphore kann, um zu schlafen in Haupt-Thread, bis Interrupt-Trigger verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top