词数
演示如何使用 map-reduce 算法。
Qt 并发 词数 示例演示了在解决对文件集合中单词进行计数的问题时使用 map-reduce 算法。
首先,应用程序启动 QFileDialog 以选择起始路径,然后将输出打印到控制台。
运行示例
要从 Qt Creator 运行示例,请打开 欢迎 模式并从 示例 中选择示例。更多信息,请访问 构建和运行示例。
操作比较
比较使用 mappedReduced() 计算文本文件中单词的串行方法与多线程方法
... WordCount total = singleThreadedWordCount(files); ... WordCount total = QtConcurrent::mappedReduced(files, countWords, reduce).result(); ...
mappedReduced 函数的第一个参数是要操作的容器。第二个参数是映射函数 countWords()
。它由多个线程并行调用。第三个参数是减少函数 reduce()
。它对映射函数返回的每个结果调用一次,并生成最终的计算结果。
该函数返回一个类型为 WordCount
的 QFuture 对象。立即调用此 QFuture 的 result 函数以阻塞进一步执行,直到结果可用。
注意:映射函数必须是线程安全的,因为它会被多个线程调用。
© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相关标志是 The Qt Company Ltd. 在芬兰和/或世界其他国家的商标。所有其他商标均为各自所有者的财产。