说明
用QtConcurrent编写的程序会根据可用的处理器内核数自动调整使用的线程数。
QtConcurrent包括用于并行列表处理的功能性编程样式API,包括用于共享内存(非分布式)系统的MapReduce和FilterReduce实现,以及用于在GUI应用程序中管理异步计算的类:
- Concurrent Map and Map-Reduce
- QtConcurrent :: map()将函数应用于容器中的每个项目,就地修改这些项目。
- QtConcurrent :: mapped()类似于map(),不同之处在于它返回带有修改的新容器。
- QtConcurrent :: mappedReduced()类似于mapping(),不同之处在于修改后的结果被缩减或折叠为单个结果。
- Concurrent Filter and Filter-Reduce
- QtConcurrent :: filter()根据过滤器功能的结果从容器中删除所有项目。
- QtConcurrent :: filtered()类似于filter(),不同之处在于它返回带有过滤结果的新容器。
- QtConcurrent :: filteredReduced()类似于filtered(),不同之处在于将过滤后的结果减少或折叠成单个结果。
- Concurrent Run
本文详细介绍了QtConcurrent库在并行处理中的应用,包括Concurrent Map、Map-Reduce、Filter和Filter-Reduce等功能,以及如何在单独的线程中运行函数。通过QtConcurrent,可以自动调整线程数,实现对Qt容器如QList和QVector的高效并行处理,支持成员函数、函数对象和多参数函数的使用。
订阅专栏 解锁全文
2557

被折叠的 条评论
为什么被折叠?



