【问题标题】:Creating a thread pool using boost使用 boost 创建线程池
【发布时间】:2011-05-04 08:12:51
【问题描述】:

是否可以使用boost的线程创建线程池? 我正在查看boost的库,但找不到线程池管理器(或类似的东西)...... 有什么办法吗?

tnx!

【问题讨论】:

标签: c++ boost threadpool boost-thread


【解决方案1】:

我知道一个答案已被接受,如果您现在需要这个,并且您不必费心编写自己的线程池,您可以尝试使用带有并发提示的 boost asio io_service(即它应该有多少线程run) 然后 post() 东西到这个 io_service...只是一个想法..

【讨论】:

  • 使用 boost asio 是正确的方法。最好不要直接管理线程池。与英特尔线程构建模块 (TBB) 相同。
  • 你能补充更多吗?听起来很有趣!
  • 我发布了基于 Asio 食谱的线程池示例。 stackoverflow.com/questions/31835009/…
【解决方案2】:

在 boost 中有一个非官方的(尚未)threadpool。 但是,自己实现一个不是问题,尤其是在通用性不是主要目标的情况下。想法:您的线程池可以使用 TaskType 类型和工作人员数量进行参数化。 TP 必须被赋予接受TaskType 的处理函数。 TP 包含一个添加任务的队列。真正的线程函数只是从队列中获取一个任务并调用传递的处理程序。类似的东西。

【讨论】:

  • 我希望他们已经添加了线程池库。知道是否会很快添加它?非常感谢您的快速回答!
  • 我不确定,但我猜测并希望 ThreadPool 和 Process 都在 1.45 中
  • 线程池库看起来不错;太糟糕了,缺少文档(许多页面声明 TODO 并警告说明已过时)。看起来它自 2008 年以来就没有受到太多关注。
猜你喜欢
  • 2014-04-25
  • 2013-10-30
  • 2012-08-26
  • 1970-01-01
  • 2015-03-28
  • 2012-06-06
  • 2011-12-18
  • 2023-02-02
  • 1970-01-01
相关资源
最近更新 更多