Seite 1 von 1

QThread, QMutex, QReadWriteLock

Verfasst: 5. Februar 2008 14:43
von Johnny Freak
Hallo alle zusammen.
Ich beschäftige mich gerade mit Multithread-Programmierung. Ich hab schon Erfahrungen mit QMutex gemacht, habe aber irgendwie das Gefühl, das geht wahsinnig langsam.
Zu meiner Situation: ich habe einen zyklischen Datenaustausch (lesen und schreiben) mit dem Inverter eines Motors über RS485. Diese Kommunikation soll logischerweise nicht von meine Visualisierung gestört werden, daher verwende ich Threads. Gut, ich habe eine Vielzahl von globale Variablen, die ich einerseits durch die Kommunikation mit dem Inverter verändere und andererseit durch die Visualisierung darstelle. Mit QMutex habe ich die Sache schon zum Laufen gebracht.

Ich wollte eigentlich nur wissen, was das Effizienteste ist, was ich generell in solchen Fällen einsetzen sollte. Ich will auf jeden Fall die zwei Sachen trennen und nicht mit Signale und Slots u.Ä. die Sachen voneinander abhängig machen. Unverzichtbar sind meine globale Variablen, für alle anderen Ideen wäre ich dankbar.

Verfasst: 5. Februar 2008 15:35
von Johnny Freak
Ok, so langsam ist das auch wieder nicht. Habe gerade nochmal getestet. Trotzdem würde es mich interessieren.

Verfasst: 5. Februar 2008 15:54
von Christian81
Wenn Du unbedingt globale Variablen willst geht kein Weg an irgend einen Mutex vorbei. QMutex kann nicht so langsam sein da es auf pthreads bzw. WinAPI - Mutex aufsetzt.
Ich kommuniziere mit meinen Threads immer per Signal/Slot - da habe ich diese Probleme nicht.

Verfasst: 5. Februar 2008 16:23
von Johnny Freak
Freut mich für Dich.
Nein, um QMutex kommt man nicht herum und die Geschwindigkeit ist ausreichend.