QtConcurrent
太棒了。提供QtConcurrent功能的通用C++库?
我会让Qt的文档不言自明:
QtConcurrent包括函数式编程风格的API进行并行处理名单,包括MapReduce和FilterReduce实现共享内存(非分布式)系统,以及在GUI应用程序中管理异步计算的类。
举例来说,你给QtConcurrent::map()
可迭代序列,并接受存储序列中的类型的项目的功能,以及功能应用到集合中的所有项目。这是以多线程方式完成的,线程池等于系统上逻辑CPU的数量。
QtConcurrent
还有很多其他的功能,比如filter()
,filteredReduced()
等。标准的CompSci map/reduce功能等等。
我完全爱上了这个,但我正在开始一个不会使用Qt框架的OSS项目。这是一个图书馆,我不想强迫别人依赖像Qt这样的大型框架。我试图将外部依赖关系降到最低(这是体面的事情)。
我正在寻找一种通用的C++框架,它提供了与QtConcurrent
相同/相似的高级基元,并且可以与STL集合一起使用。 AFAIK boost
没有像这样(虽然我可能是错的)。 boost::thread
与我正在寻找的相比是非常低的水平(但是如果请求的库使用boost::thread
进行低级别工作,那将很不错)。
我知道C#有一些与它们的并行扩展非常相似的东西,所以我知道这不是一个Qt唯一的想法。
你有什么建议我使用?
QtConcurrent很酷。我调整了Mandelbrot示例以使用并行接口...可能会对你感兴趣:http://hostilefork.com/thinker-qt/ – HostileFork 2010-06-12 16:56:46
@Hostile是的,QtConcurrent很酷。正如我所说,我一直在使用它。我只是在寻找类似于STL集合而没有Qt本身的东西。 – Lucas 2010-06-12 16:59:14
我可能是错的,但我认为Qt的模块化意味着你必须使用最多只有QtCore和QtConcurrent(而不是“像Qt这样的大型框架”)? – codinguser 2010-06-12 20:20:22