Qt 以獨立於平颱的綫程類、張貼事件的綫程安全方式及跨綫程的信號/槽連接形式,提供綫程支持。這使開發可移植多綫程 Qt 應用程序和利用多處理器機器,變得很容易。多綫程編程也是在不凍結應用程序用戶界麵情況下,用於履行耗時操作的有用範式。
早期版本的 Qt 提供在不支持綫程的情況下構建庫的選項。從 Qt 4.0 起,綫程始終被啓用。
This document is intended for an audience that has knowledge of, and experience with, multithreaded applications. If you are new to threading see our Recommended Reading list:
這些類有關綫程化應用程序。
| Asynchronous Run | The <QtConcurrentRun> header provides a way to run a function in a separate thread. |
| 並發過濾和過濾縮減 | The <QtConcurrentFilter> header provides concurrent Filter and Filter-Reduce. |
| 並發映射和映射縮減 | The <QtConcurrentMap> header provides concurrent Map and MapReduce. |
| QAtomicInt | 於整數上獨立於平颱的原子操作 |
| QAtomicPointer | 為指針提供獨立於平颱的原子操作的模闆類 |
| QFuture | 錶示異步計算的結果 |
| QFutureSynchronizer | 簡化 QFuture 同步的方便類 |
| QFutureWatcher | 允許監視 QFuture 使用信號和插槽 |
| QMutex | 在綫程之間串行化訪問 |
| QMutexLocker | 簡化鎖定和解鎖互斥的方便類 |
| QReadLocker | 用於讀取訪問的鎖定和解鎖的讀寫鎖的方便簡化類 |
| QReadWriteLock | 讀/寫鎖定 |
| QRunnable | 用於所有可運行對象的基類 |
| QSemaphore | 通用計數信號量 |
| QThread | 獨立於平颱的綫程管理辦法 |
| QThreadPool | 管理一批 QThread |
| QThreadStorage | 每綫程數據存儲 |
| QWaitCondition | 用於同步綫程的條件變量 |
| QWriteLocker | 用於寫入訪問的鎖定和解鎖的讀寫鎖的方便簡化類 |
| QtConcurrent | 使之無需使用低級綫程原語就能編寫多綫程程序的高級 API |
注意: Qt 的綫程類是采用本機綫程 API 實現的 (如,Win32 和 PThreads)。因此,它們可以與相同本機 API 綫程一起使用。