Warum muss man einen Mutex zusätzlich zu einem Semaphor verwenden, wenn man einen beschränkten Puffer in Producer Consumer Problem verwendet?Warum sind zwei Semaphore und ein Mutex erforderlich, um eine begrenzte Pufferinstanz des Producer-Consumers zu lösen?
0
A
Antwort
0
empty:semaphore(n)
full: semaphore(0)
mutex: semaphore(1)
"Mutex" wird verwendet, um Puffer zu sperren.
"Voll" wird verwendet, um den Verbraucher zu blockieren, wenn der Puffer leer ist.
"leer" wird verwendet, um den Erzeuger zu blockieren, wenn der Puffer voll ist.
Deshalb brauchen Sie 3 Semaphore.
Sie können den Code einfach googlen, also füge ich ihn hier nicht ein.
Verwandte Themen
- 1. Mutex oder Semaphore für zwei verschiedene Threads
- 2. Unterschied zwischen Mutex und Semaphore = 1?
- 3. Warum sind zwei Pthreads auch ohne Mutex synchronisiert?
- 4. Erstellen benannter Mutex-Semaphore in Java
- 5. Erforderlich zu lösen und mit HTTPServletRequest zu lösen
- 6. Semaphore-Implementierung: Warum sind deaktivierende Interrupts zusammen mit Test-und-Set erforderlich?
- 7. Warum benötigt ein Mutex keinen Mutex (und dieser Mutex braucht einen Mutex ...)
- 8. zwei Semaphore nicht kommunizieren
- 9. Um Mutex oder nicht zu Mutex?
- 10. Warum sind ParentComponent.childContextTypes und ChildComponent.contextTypes erforderlich?
- 11. Zugang globalen Mutex/Semaphore von Benutzeranwendung ohne Admin-Rechte
- 12. Sind ein WSGI-Server und HTTP-Server erforderlich, um eine Flask-App zu bedienen?
- 13. Mutex Unlock-Fehler, wenn ein QSemaphore
- 14. Logical Ansatz erforderlich, um dieses Problem zu lösen
- 15. Warum würde $ q eine Weile dauern, um zu lösen
- 16. Warum eine Zustandsgröße benötigt eine Sperre (und damit auch einen Mutex)
- 17. Welche Sprachkenntnisse sind erforderlich, um Informatica effektiv zu nutzen?
- 18. C++: Ist ein Mutex mit `std :: lock_guard` genug, um zwei` std :: threads` zu synchronisieren?
- 19. Semaphore Mutex Concurrency Problem in Multithreaded C-Programm
- 20. Zwei Textfelder, eines oder beide, sind erforderlich
- 21. Wie man den Semaphore-Wert in C++ erhöht, um Philosophen zu lösen
- 22. Prozeßsynchronisation und Zählen Semaphore
- 23. Ansible: wie zu lösen "Sudo: ein Passwort erforderlich ist" Fehler?
- 24. Warum sind Verweise auf die Mutex-Klasse kein gutes Design?
- 25. Verwenden AutoResetEvents/ManualResetEvents intern einen Win32 Semaphore oder Mutex?
- 26. Warum sind "UIExplorerBlock erforderlich" und "UIExplorerPage erforderlich" für einige Komponenten erforderlich?
- 27. Semaphore und Synchronisation
- 28. Sind Standardzuweiser erforderlich, um zusammenhängenden Speicher zuzuordnen?
- 29. Binary Semaphore vs ReentrantLock
- 30. Sind GooglePlayServices erforderlich, um mit GCM zu arbeiten?