Qt中的线程支持

Qt通过平台无关的线程类、线程安全的发布事件方式和线程间信号-槽连接提供线程支持。这使得开发可移植的多线程Qt应用程序并利用多处理器机器变得容易。多线程编程也是在没有冻结应用程序用户界面的情况下执行耗时操作的有用范例。

Qt的早期版本提供了一种构建不带线程支持的库的选项。自Qt 4.0起,线程始终启用。

主题:

这些文章假定读者已具备关于多线程应用程序的基本知识。

线程类

这些类与线程应用程序相关。

并发过滤器

在并行中选择序列中的值并将它们组合

并发映射

在并行中将序列中的值进行转换并将它们组合

并发运行

在单独的线程中运行任务的一种简单方法

并发任务

在单独的线程中运行任务的可配置方法

QAtomicInteger

对整数进行平台无关的原子操作

QAtomicPointer

模板类,提供对指针的平台无关的原子操作

QFuture

异步计算的结果

QFutureSynchronizer

简化QFuture同步的便利类

QFutureWatcher

允许通过信号和槽监控QFuture

QMutex

线程间的访问序列化

QMutexLocker

简化锁定和解锁互斥锁的便利类

QPromise

用于将计算结果存储到QFuture中以便访问的方式

QReadLocker

简化对读写锁进行读访问的锁定和解除锁定

QReadWriteLock

读写锁定

QRecursiveMutex

线程间的访问序列化

QRunnable

所有可运行对象的基类

QSemaphore

计数信号量

QSemaphoreReleaser

异常安全地延迟QSemaphore::release()调用

QThread

管理线程的平台无关方式

QThreadPool

管理QThread集合

QThreadStorage

线程数据存储

QWaitCondition

同步线程的条件变量

QWriteLocker

简化读写锁的锁定和解除锁定的便利类

QtConcurrent

高级API,使得在不使用底层线程原语的情况下编写多线程程序成为可能

QtConcurrent::QTaskBuilder

用于调整任务参数

QtFuture::WhenAnyResult

QtFuture::WhenAnyResult用于表示QtFuture::whenAny()的结果

QAtomicInteger::qYieldCpu()

注意: Qt的线程类使用原生线程API实现;例如,Win32和pthreads。因此,它们可以与同一原生API的线程一起使用。

© 2024 Qt公司有限。此处包含的文档贡献均为各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可协议第1.3版的条款授权。Qt和相关标志是芬兰和/或其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。