我想使用boost::thread
类实现线程池。
我可以使用下面的行创建线程。
boost::thread Consumer_1(consume);
其中consumer_1
是线程,而consume是绑定它的函数。
上面的语句一旦执行就会启动它。
现在我只想创建线程并执行绑定运行时。
我还没有发现boost
方法来延迟这种绑定。
有人可以为此提供帮助吗?
答案 0 :(得分:1)
绑定以后不能完成。出于主要原因 - 执行线程必须执行某些操作。
您需要做的是创建一个函数,该函数将从队列中获取作为boost::function
表示的作业并执行它们。比在一个或多个线程中运行此函数。
我不确定是否存在线程安全队列,但您始终可以使用常规std::deque
和boost::condition_variable
来唤醒线程,boost::mutex
来锁定deque。< / p>
您可能也想查看Boost.Asio。另请参阅here。