Qt 中的綫程支持

Qt 以獨立於平颱的綫程類、張貼事件的綫程安全方式及跨綫程的信號/槽連接形式,提供綫程支持。這使開發可移植多綫程 Qt 應用程序和利用多處理器機器,變得很容易。多綫程編程也是在不凍結應用程序用戶界麵情況下,用於履行耗時操作的有用範式。

早期版本的 Qt 提供在不支持綫程的情況下構建庫的選項。從 Qt 4.0 起,綫程始終被啓用。

話題:

這些文章假定讀者擁有有關多綫程應用程序的基本知識。

綫程類

這些類有關綫程化應用程序。

並發過濾和過濾縮減
並發映射和映射縮減
並發運行
QAtomicInteger 於整數上獨立於平颱的原子操作
QAtomicPointer 為指針提供獨立於平颱的原子操作的模闆類
QFuture 錶示異步計算的結果
QFutureSynchronizer 簡化 QFuture 同步的方便類
QFutureWatcher 允許監視 QFuture 使用信號和插槽
QMutex 在綫程之間串行化訪問
QMutexLocker 簡化鎖定和解鎖互斥的方便類
QReadLocker 用於讀取訪問的鎖定和解鎖的讀寫鎖的方便簡化類
QReadWriteLock 讀/寫鎖定
QRunnable 用於所有可運行對象的基類
QSemaphore 通用計數信號量
QSemaphoreReleaser 異常安全的 QSemaphore::release() 調用的延遲
QThread 獨立於平颱的綫程管理辦法
QThreadPool 管理一批 QThread
QThreadStorage 每綫程數據存儲
QWaitCondition 用於同步綫程的條件變量
QWriteLocker 用於寫入訪問的鎖定和解鎖的讀寫鎖的方便簡化類
QtConcurrent 使之無需使用低級綫程原語就能編寫多綫程程序的高級 API

注意: Qt 的綫程類是采用本機綫程 API 實現的 (如,Win32 和 PThreads)。因此,它們可以與相同本機 API 綫程一起使用。