gpt4 book ai didi

c++ - 提供 QtConcurrent 功能的通用 C++ 库?

转载 作者:太空狗 更新时间:2023-10-29 23:09:58 26 4
gpt4 key购买 nike

QtConcurrent太棒了。

我会让 Qt 文档自己说话:

QtConcurrent includes functional programming style APIs for parallel list processing, including a MapReduce and FilterReduce implementation for shared-memory (non-distributed) systems, and classes for managing asynchronous computations in GUI applications.

例如,您给 QtConcurrent::map() 一个可迭代序列和一个函数,该函数接受存储在序列中的类型的项目,并且该函数应用于集合中的所有项目.这是以多线程方式完成的,线程池等于系统上逻辑 CPU 的数量。

QtConcurrent 中还有很多其他函数,比如 filter()filteredReduced() 等。标准的 CompSci map/reduce 函数之类的。

我完全爱上了这个,但我正在开始一个不使用 Qt 框架的 OSS 项目。就是个库,不想强求别人去依赖Qt这么大的框架。我试图将外部依赖性保持在最低限度(这是一件体面的事情)。

我正在寻找一个通用的 C++ 框架,它提供与 QtConcurrent 相同/相似的高级原语,并且适用于 STL 集合。 AFAIK boost 没有这样的东西(虽然我可能错了)。与我正在寻找的相比,boost::thread 是非常低级的(但如果请求的库使用 boost::thread 进行低级工作,那会很棒)。

我知道 C# 与其并行扩展有一些非常相似的东西,所以我知道这不仅仅是 Qt 的想法。

你建议我使用什么?

最佳答案

我听说过关于 Intel's Threaded Building Blocks 的好消息, 虽然我没用过

截至 2009 年 10 月,它似乎没有具体的 map-reduce。但是人们表达了兴趣并建议他们想出一些办法:

http://software.intel.com/en-us/forums/showthread.php?t=65053

"map reduce looks like a simple combination of a filter, a sort, and a reduction but it might need some magic to get it to be efficient"

关于c++ - 提供 QtConcurrent 功能的通用 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com