Thread-Unterstützung in Qt
Qt bietet Thread-Unterstützung in Form von plattformunabhängigen Threading-Klassen, einer Thread-sicheren Art, Ereignisse zu posten, und Signal-Slot-Verbindungen über Threads hinweg. Dies erleichtert die Entwicklung portabler Multithreading-Qt-Anwendungen und die Nutzung von Multiprozessor-Maschinen. Die Multithread-Programmierung ist auch ein nützliches Paradigma, um zeitaufwändige Operationen durchzuführen, ohne die Benutzeroberfläche einer Anwendung einzufrieren.
Frühere Versionen von Qt boten die Möglichkeit, die Bibliothek ohne Thread-Unterstützung zu erstellen. Seit Qt 4.0 sind Threads immer aktiviert.
Themen:
Diese Artikel gehen davon aus, dass der Leser über grundlegende Kenntnisse über Multithreading-Anwendungen verfügt.
- Die Threading-Klassen
- Multithreading-Technologien in Qt
- Threads synchronisieren
- Reentrancy und Thread-Safety
- Threads und QObjects
- Thread-Unterstützung in Qt-Modulen
Die Threading-Klassen
Diese Klassen sind für Threading-Anwendungen relevant.
Auswahl von Werten aus einer Sequenz und deren Kombination, alles parallel | |
Transformieren von Werten aus einer Sequenz und Kombinieren dieser Werte, alles parallel | |
Eine einfache Möglichkeit, eine Aufgabe in einem separaten Thread auszuführen | |
Ein konfigurierbarer Weg, um eine Aufgabe in einem separaten Thread auszuführen | |
Plattformunabhängige atomare Operationen auf Ganzzahlen | |
Vorlagenklasse, die plattformunabhängige atomare Operationen mit Zeigern ermöglicht | |
Repräsentiert das Ergebnis einer asynchronen Berechnung | |
Convenience-Klasse, die die Synchronisation von QFuture vereinfacht | |
Ermöglicht die Überwachung eines QFuture mit Signalen und Slots | |
Zugriffsserialisierung zwischen Threads | |
Convenience-Klasse, die das Sperren und Entsperren von Mutexen vereinfacht | |
Möglichkeit, Berechnungsergebnisse zu speichern, auf die QFuture zugreifen kann | |
Convenience-Klasse, die das Sperren und Entsperren von Schreib-Lese-Sperren für den Lesezugriff vereinfacht | |
Lese-Schreib-Sperren | |
Zugriffsserialisierung zwischen Threads | |
Die Basisklasse für alle runnable Objekte | |
Allgemein zählende Semaphore | |
Ausnahmesichere Aufschiebung eines QSemaphore::release()-Aufrufs | |
Plattformunabhängiger Weg zur Verwaltung von Threads | |
Verwaltet eine Sammlung von QThreads | |
Pro-Thread Datenspeicherung | |
Bedingungsvariable für die Synchronisierung von Threads | |
Convenience-Klasse, die das Sperren und Entsperren von Lese- und Schreibsperren für den Schreibzugriff vereinfacht | |
High-Level-APIs, die es ermöglichen, Multi-Thread-Programme zu schreiben, ohne Low-Level-Threading-Primitive zu verwenden | |
Wird für die Anpassung von Task-Parametern verwendet | |
QtFuture::WhenAnyResult wird verwendet, um das Ergebnis von QtFuture::whenAny() darzustellen | |
Hinweis: Qt's Threading-Klassen sind mit nativen Threading-APIs implementiert; z.B. Win32 und pthreads. Daher können sie mit Threads der gleichen nativen API verwendet werden.
© 2025 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.