词数

演示如何使用 map-reduce 算法。

Qt 并发 词数 示例演示了在解决对文件集合中单词进行计数的问题时使用 map-reduce 算法。

首先,应用程序启动 QFileDialog 以选择起始路径,然后将输出打印到控制台。

运行示例

要从 Qt Creator 运行示例,请打开 欢迎 模式并从 示例 中选择示例。更多信息,请访问 构建和运行示例

操作比较

比较使用 mappedReduced() 计算文本文件中单词的串行方法与多线程方法

    ...
    WordCount total = singleThreadedWordCount(files);
    ...
    WordCount total = QtConcurrent::mappedReduced(files, countWords, reduce).result();
    ...

mappedReduced 函数的第一个参数是要操作的容器。第二个参数是映射函数 countWords()。它由多个线程并行调用。第三个参数是减少函数 reduce()。它对映射函数返回的每个结果调用一次,并生成最终的计算结果。

该函数返回一个类型为 WordCountQFuture 对象。立即调用此 QFutureresult 函数以阻塞进一步执行,直到结果可用。

注意:映射函数必须是线程安全的,因为它会被多个线程调用。

@ code.qt.io 的示例项目

© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相关标志是 The Qt Company Ltd. 在芬兰和/或世界其他国家的商标。所有其他商标均为各自所有者的财产。