Multithreading in Qt
Qt bietet Thread-Unterstützung in Form von plattformunabhängigen Threading-Klassen, einer threadsicheren Methode zum Auslösen von Ereignissen sowie Signal-Slot-Verbindungen über Threads hinweg. Dies erleichtert die Entwicklung portabler Multithread-Anwendungen mit Qt und ermöglicht die Nutzung der Vorteile von Multiprozessor-Systemen. Die Multithread-Programmierung ist zudem ein nützliches Paradigma, um zeitaufwändige Operationen auszuführen, ohne dass die Benutzeroberfläche einer Anwendung einfriert.
Frühere Versionen von Qt boten die Möglichkeit, die Bibliothek ohne Thread-Unterstützung zu kompilieren. Seit Qt 4.0 sind Threads standardmäßig aktiviert.
Themen:
Diese Artikel setzen voraus, dass der Leser über Grundkenntnisse zu Multithread-Anwendungen verfügt.
- Die Threading-Klassen
- Multithreading-Technologien in Qt
- Synchronisierung von Threads
- Reentranz und Thread-Sicherheit
- Threads und QObjects
- Thread-Unterstützung in Qt-Modulen
Die Threading-Klassen
Diese Klassen sind für Anwendungen mit Threads relevant.
Werte aus einer Sequenz auswählen und kombinieren – alles parallel | |
Werte aus einer Sequenz transformieren und kombinieren – alles parallel | |
Eine einfache Möglichkeit, eine Aufgabe in einem separaten Thread auszuführen | |
Eine konfigurierbare Möglichkeit, eine Aufgabe in einem separaten Thread auszuführen | |
Plattformunabhängige atomare Operationen mit Ganzzahlen | |
Vorlagenklasse, die plattformunabhängige atomare Operationen auf Zeigern bereitstellt | |
Stellt das Ergebnis einer asynchronen Berechnung dar | |
Hilfsklasse, die die Synchronisation mit QFuture vereinfacht | |
Ermöglicht die Überwachung eines QFuture mithilfe von Signalen und Slots | |
Serialisierung des Zugriffs zwischen Threads | |
Hilfsklasse, die das Sperren und Entsperren von Mutexen vereinfacht | |
Möglichkeit, Berechnungsergebnisse so zu speichern, dass sie von QFuture abgerufen werden können | |
Hilfsklasse, die das Sperren und Entsperren von Lese-Schreib-Sperren für den Lesezugriff vereinfacht | |
Lese-Schreib-Sperren | |
Zugriffsserialisierung zwischen Threads | |
Die Basisklasse für alle ausführbaren Objekte | |
Allgemeines Zählsemaphor | |
Ausnahnesichere Verschiebung eines Aufrufs von `QSemaphore::release()` | |
Plattformunabhängige Methode zur Verwaltung von Threads | |
Verwaltet eine Sammlung von QThreads | |
Datenspeicherung pro Thread | |
Bedingungsvariable zur Synchronisierung von Threads | |
Hilfsklasse, die das Sperren und Entsperren von Lese-Schreib-Sperren für den Schreibzugriff vereinfacht | |
Hochrangige APIs, die das Schreiben von Multithread-Programmen ohne Verwendung von Low-Level-Threading-Primitiven ermöglichen | |
Wird zum Anpassen von Aufgabenparametern verwendet | |
QtFuture::WhenAnyResult wird verwendet, um das Ergebnis von QtFuture::whenAny() darzustellen | |
Hinweis: Die Threading-Klassenvon Qt sind mit nativen Threading-APIs implementiert, z. B. Win32 und pthreads. Daher können sie mit Threads derselben nativen API verwendet werden.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.