Gast
#5009033
Guten Morgen, Ich bräuchte zum Verständnis mal ein paar Beispiele in denen Mutex eine wichtige Rolle spielt. Aus dem Wiki werde ich nicht schlau.
|
Anzeige
|
Mutex welche Bedeutung bzw. was ist das genau?
Gast
#5009033
Guten Morgen, Ich bräuchte zum Verständnis mal ein paar Beispiele in denen Mutex eine wichtige Rolle spielt. Aus dem Wiki werde ich nicht schlau. Schau Dir mal Artikel / Bücher zum Thema "Wechselseitiger Ausschluß" (mutual exclusion) oder etwas über nebenläufige Programmierung. Eieiei schrieb: > Guten Morgen, > > Ich bräuchte zum Verständnis mal ein paar Beispiele in denen Mutex eine > wichtige Rolle spielt. > > Aus dem Wiki werde ich nicht schlau. Im Prinzip ist es einfach: Wenn ein Thread in mehreren Einzelaktionen auf irgendeine Ressource zugreift und das nicht durch einen anderen Thread, der auf die selben Ressourcen zugreift, unterbrochen werden darf, kannst du einen Mutex verwenden, um das zu erzielen.
Gast
#5009111
Oder noch einfacher, durch einen Mutex kannst du sicherstellen, das du exklusiven Zugriff auf eine Resource bekommst. Beispiel
Die memcpy() operation ist nicht atomar, das heißt, du brauchst mehre CPU Zyklen bis diese abgearbeitet ist. Die Variable global ist im kompletten Programm verfügbar. In meinem Multitaskingbetriebssystem kann es passieren, das Thread A während dieser memcpy() Operation durch den Scheduler unterbrochen wird. Wenn jetzt ein weiterer Thread anfängt, ebenfalls Daten in global zu kopieren, und danach wieder Thread A seine Operation fort führt, hast du in global teils Daten von Thread A und Thread B drinnen. Durch den Mutex kann sich Thread A exklusiven Zugriff sichern. Wenn Thread B das memcpy() ausführen will, bleibt Thread B solange an mutex.lock() hängen, bis Thread A mit mutex.unlock() den Mutex wieder frei gibt was sicherstellt, das memcpy() fertig ist. Im Gegensatz zu einer Semaphore kann ein Mutex nur von dem gleichen Thread wieder freigegeben werden, in dessen Kontext er geholt wurde. Somit kann man einen Mutex nicht für Threadsynchronisationen verwenden.
Gast
#5009115
Eine sehr gute Erklärung, dami kann ich etwas anfangen. Dankeschön.
Gast
#5014138
fpga_anfaenger schrieb: > Somit kann man einen Mutex nicht für Threadsynchronisationen verwenden. Doch siehe waitcondition und mutex. Dies ist extra dafür angedacht. Gruss
Gast
#5088962
Perfekt erklärt! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|