我想使用 boost::thread
类实现线程池。
我可以使用下面的代码创建线程。
boost::thread Consumer_1(consume);
其中 consumer_1
是线程,consume 是绑定(bind)到它的函数。
上面的语句一执行就启动线程。
现在我只想创建线程并执行绑定(bind)运行时。
我还没有发现boost
方法来延迟这个绑定(bind)。
有人可以帮忙吗?
最佳答案
绑定(bind)不能稍后完成。出于主要原因 - 执行线程必须执行某些操作。
您需要做的是创建一个函数,该函数将从队列中获取作业(表示为 boost::function
)并执行它们。比在一个或多个线程中运行此函数。
我不确定是否存在线程安全队列,但您始终可以使用带有 boost::condition_variable
的常规 std::deque
来唤醒线程和 boost::mutex
用于锁定双端队列。
您可能想看看 Boost.Asio也。另见 here .
关于c++ - 使用 Boost::thread 类的线程池实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396601/