Qt 中的线程支持
Qt 提供了跨平台的线程类、线程安全的事件发布方式以及跨线程的信号-槽连接。这使得开发可移植的多线程 Qt 应用程序以及利用多处理器机器变得容易。多线程编程也是执行耗时操作而不冻结应用程序用户界面的有用范式。
Qt 的早期版本提供了构建不支持线程的库的选项。从 Qt 4.0 开始,线程功能始终启用。
主题:
这些文章假设读者具有关于多线程应用程序的基本知识。
- 线程类
- Qt 中的多线程技术
- 线程同步
- 可重入性和线程安全
- 线程和 QObjects
- Qt 模块中的线程支持
线程类
这些类与线程应用程序相关。
并发过滤器和过滤器-归约 | |
---|---|
并发映射和映射-归约 | |
并发运行 | |
QAtomicInteger | 平台无关的整数原子操作 |
QAtomicPointer | 提供平台无关的指针原子操作的模板类 |
QFuture | 表示异步计算的结果 |
QFutureSynchronizer | 简化 QFuture 同步的便利类 |
QFutureWatcher | 允许使用信号和槽监控 QFuture |
QMutex | 线程间的访问序列化 |
QMutexLocker | 简化锁定和解锁互斥体的便利类 |
QReadLocker | 简化读写锁的读取访问锁定和解锁的便利类 |
QReadWriteLock | 读写锁 |
QRecursiveMutex | 线程间的访问序列化 |
QRunnable | 所有可运行对象的基类 |
QSemaphore | 通用计数信号量 |
QSemaphoreReleaser | QSemaphore::release() 调用的异常安全推迟 |
QThread | 管理线程的跨平台方式 |
QThreadPool | 管理 QThread 集合 |
QThreadStorage | 每线程数据存储 |
QWaitCondition | 用于线程同步的条件变量 |
QWriteLocker | 简化读写锁的写入访问锁定和解锁的便利类 |
QtConcurrent | 高级 API,使得编写多线程程序而无需使用低级线程原语成为可能 |
注意: Qt 的线程类是使用本地线程 API 实现的,例如 Win32 和 pthreads。因此,可以与相同本地 API 的线程一起使用。