线程池使用Boost :: thread类实现

时间:2013-08-23 06:50:34

标签: c++ multithreading boost boost-thread

我想使用boost::thread类实现线程池。

我可以使用下面的行创建线程。

boost::thread Consumer_1(consume); 

其中consumer_1是线程,而consume是绑定它的函数。

上面的语句一旦执行就会启动它。

现在我只想创建线程并执行绑定运行时。

我还没有发现boost方法来延迟这种绑定。

有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:1)

绑定以后不能完成。出于主要原因 - 执行线程必须执行某些操作。

您需要做的是创建一个函数,该函数将从队列中获取作为boost::function表示的作业并执行它们。比在一个或多个线程中运行此函数。

我不确定是否存在线程安全队列,但您始终可以使用常规std::dequeboost::condition_variable来唤醒线程,boost::mutex来锁定deque。< / p>

您可能也想查看Boost.Asio。另请参阅here