作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
QtConcurrent::map()、QtConcurrent::mapped() 和 QtConcurrent::mappedReduced() 函数对一个序列中(例如:QList、QVector)的项目并行地进行计算。QtConcurrent::map() 就地修改一个序列,QtConcurrent::mapped() 返回一个包含修改内容的新序列,QtConcurrent::mappedReduced() 返回一个单一的结果。
这些函数是 Qt之Concurrent框架 的一部分。
上述的每个函数都有一个 blocking 变量,其返回的是最终结果,而不是一个 QFuture。可以用和异步变量同样的方式来使用它们。
QList<QImage> images = ...;
// 每次调用都会被阻塞,直到整个操作完成
QList<QImage> future = QtConcurrent::blockingMapped(images, scaled);
QtConcurrent::blockingMap(images, scale);
QImage collag
Qt并发编程:Concurrent Map与Map-Reduce
本文详细介绍了QtConcurrent的Concurrent Map和Map-Reduce功能,包括QtConcurrent::map()、QtConcurrent::mapped()和QtConcurrent::mappedReduced()的用法。这些函数用于对序列中的元素并行计算,支持就地修改、返回新序列以及合并结果。文章还涵盖了使用迭代器、成员函数、函数对象以及绑定函数参数的示例。
订阅专栏 解锁全文
4495





