首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Boost库的c++中的线程池

使用Boost库的c++中的线程池
EN

Stack Overflow用户
提问于 2010-12-08 21:48:56
回答 3查看 1.4K关注 0票数 1

我想写一个多线程合并排序使用线程池,因此下载了boost库。我是c++的新手,很难理解如何运行源代码中给出的示例程序。这是我下载的源码..http://threadpool.sourceforge.net/ ...它在下载section...Any帮助是赞赏的。

EN

回答 3

Stack Overflow用户

发布于 2010-12-09 00:02:14

另一个用于管理线程的工具是TBB Intel Thread Building Blocks。你甚至已经有了合并排序的实现,参见"tbb/parallel_sort.hpp“(但是这个实现效率不是很高,因为它需要最少的O(n)时间,而与线程的数量无关)。

票数 2
EN

Stack Overflow用户

发布于 2010-12-08 23:28:55

我不熟悉那个特定的线程池库(b.t.w.它不是Boost的一部分),但线程池的一般概念非常简单。这个类必须有像enqueue(std::function<void()> fn);接口这样的东西,你所需要的就是包装你的函数以获得所需的函数对象,这通常是用std::bind或lambda函数来完成的。线程池会将您的函数对象放在一个队列中,直到它有一个可用线程来执行它;在这一点上它只是调用fn()。关于并行化排序,您可以编写一个快速排序版本,该版本非常适合并行化:http://en.wikipedia.org/wiki/Quicksort

P.S. std::function,相应的std::bind和lambda函数都是C++0x的一部分,你也可以在Boost中找到替代品。

票数 1
EN

Stack Overflow用户

发布于 2010-12-08 23:18:20

OpenMP会更好地满足你的需求,而不是自我管理线程。this overview中包含了一个合并排序示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4388184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档