QMutex Verständnis

Alles rund um die Programmierung mit Qt
Antworten
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

QMutex Verständnis

Beitrag von pschnot1000 »

Hey.

Ich hab mir einen Thread erstellt, welcher abwechselnd Addresse und Daten auf einen Bus legt.
Dieser Thread wird mehrfach aufgerufen. Soll heißen Der erste Thread kümmert sich um die ersten 10 Addressen der zweite um die zweiten 10.
Nun möchte ich das die Kombination Adresse-Daten gelockt ist, also wenn die Adresse geschickt wurde, danach auf jedenfall die dazugehörigen Daten geschickt werden.
Jetzt dacht ich, dass genau das mutex lock macht???
Jedoch wenn ich mir anzeigen lasse was gesendet wird, kann es vorkommen das zwei adressen nacheinander bzw.zwei mal Daten nacheinander geschickt werden. Sich also die Threads überschneiden.
Hab ich das mit dem Mutex da falsch verstanden und muss eine andere Methode verwenden? (ReadWritelocker hab ich an dieser Stelle auch versucht, gleiches Ergebniss)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QMutex Verständnis

Beitrag von Christian81 »

Ein Mutex serialisert Zugriff auf Daten, mehr nicht. Wie Du auf die Daten zugreifst und welcher Thread welche Daten verarbeitet liegt natürlich in deiner Programmlogik.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

Re: QMutex Verständnis

Beitrag von pschnot1000 »

Danke für die Antwort.
Aber gibt es eine Möglichkeit, dass ein gewünschter Inhalt immer im Paket gesendet wird, ohne dass ein anderer Thread da dazwischen funkt?
Ich muss erst das Adress byte und anschließend das Daten byte ausgeben, aber genau an dem Punkt kommen sich die Threads in die Quere.
Gibt es da einen Lösungsvorschlag?
Antworten