QtConcurrent并发模块提供高级API,使得无需使用低级线程基元(如互斥、读写锁、等待条件或信号量)即可编写多线程程序。
使用QtConcurrent并发模块编写的程序根据可用的处理器内核数自动调整使用的线程数。这意味着,当将来部署在多核系统上时,今天编写的应用程序将继续扩展。
Qt并发包括用于并行列表处理的功能编程样式API,包括用于共享内存(非分布式)系统的MapReduce和筛选器减少实现,以及用于管理GUI应用程序中异步计算的类:
将函数应用于容器中的每个项,修改就地项。就像映射map(),只不过它返回一个包含修改的新容器。与mapped(),只不过修改后的结果被缩小或折叠到单个结果中。根据筛选器函数的结果从容器中删除所有项。与filter(),只不过它返回一个包含筛选结果的新容器。就像filtered(),只不过筛选的结果被缩小或折叠成单个结果。一个线程中运行一个函数。创建。此对象可用于调整参数和在单独的线程中启动任务。表示异步计算的结果。允许通过QFuture提供。允许插槽监控QFuture。是一个方便类,它会自动同步多个QFuture。提供了一种向QFuture报告异步计算的进度。允许在QFuture请求时暂停。
Qt5.9C++开发指南(异步图书出品)京东月销量好评率98%无理由退换京东配送¥89购买Qt并发支持几种与STL兼容的容器和用户类型,但最适合具有随机访问器的Qt容器,如QList。映射和筛选器函数接受容器和开始/结束筛选器。
STL数据器支持概述:
随机访问遍数器在Qt并发在大量轻量级项上进行遍时可以更快,因为它们允许跳到容器中的任何点。此外,使用随机访问遍历器允许Qt并发提供进度信息QFuture::progressValue()和QFutureWatcher::progressValueChanged()。
Qt5.12实战京东好评率94%无理由退换京东配送官方店旗舰店¥.4购买非就地修改函数(mapped()andfiltered())在调用时创建容器的副本。如果使用STL容器,此复制操作可能需要一些时间,在这种情况下,我们建议指定容器的开始和结束步从。
使用模块
使用Qt模块需要直接或通过其他依赖项对模块库进行链接。一些构建工具对此有专门的支持,包括CMake和qmake。
使用CMake绑定生成
使用命令在包中查找所需的模块组件:find_package()Qt6
find_package(Qt6COMPONENTSConcurrentREQUIRED)target_link_libraries(mytargetPRIVATEQt6::Concurrent)
另请参阅使用CMake的生成概述。
PythonQtGUI与数据可视化编程(异步图书出品)京东月销量好评率99%无理由退换京东配送官方店¥79购买带qmake的绑定生成
若要使用qmake配置用于构建的模块,请将模块添加为项目的.pro文件中变量的值:QT
QT+=concurren
Qt框架流布局QFlowlayout使用实例
Qt6中网络模块的最新更新和修改,以及未来可能的发展方向
Qt6基于Qt5的新技术概览
Qt6.0在5.0巨大成功的基础上正式发布!
Qt实例——主窗口和子窗口互发信号
#Qt#