mikrocontroller.net

Forum: PC-Programmierung Multicore Programmierung


Autor: fresh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich bin gerade dabei ein Buch von IntelPress mit den Titel "Multicore 
Programmierung" zu lesen und bei einen Beispiel verstehe ich die 
verwendung der Mutexe nicht ganz. Das Beispiel ist in Listing 5.13 auf 
Seite 121 zu finden falls jemand das Buch hat. Irgendwie schliesen sich 
in einen Augen die drei Threads durch das sperren des Mutex gegenseitig 
aus aber anscheinend tun sie das nicht. Falls jemand das Buch zuhause 
hat kann er ja bitte nachsehen und mir das erklären?! Den Code reiche 
ich noch nach. Es gibt in den Beispiel einen Hauptthread welcher zwei 
weitere Threads erzeugt. in den beiden Threads wird als erste Schritt 
ein Mutex gesperrt mit pthread_mutex_lock. Nachdem beide das selbe Mutex 
sperren sollte doch ein thread das Mutex erhalten und der zweite bei den 
Befehl blokieren und erst weiterkommen wenn der vorige das Mutex wieder 
frei gibt oder? Aber anscheinend ist es nicht so und so sperrt der 
Hauptthread nach den starten der beiden anderen Threads auch noch mal 
das Mutex. Und laut Beschreibung ist es so als ob aller drei das Mutex 
bekommen?!

Mfg fresh

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das Buch nicht, aber:

fresh schrieb:
> Nachdem beide das selbe Mutex sperren sollte doch ein thread das Mutex
> erhalten und der zweite bei den Befehl blokieren und erst weiterkommen
> wenn der vorige das Mutex wieder frei gibt oder?

Ja, das ist die Idee bei Mutexes.

> Aber anscheinend ist es nicht so und so sperrt der Hauptthread nach den
> starten der beiden anderen Threads auch noch mal das Mutex.

Kann er ja tun.

> Und laut Beschreibung ist es so als ob aller drei das Mutex bekommen?!

Ja, aber die müssen das Ding doch auch irgendwann wieder freigeben, oder 
tun sie das nicht?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.