c++ - 使用 Boost::thread 类的线程池实现

标签 c++ multithreading boost boost-thread

我想使用 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/

相关文章:

c++ - 我如何制作指向动态分配对象的指针 vector ?

python - 坚持Boost-Python教程(Boost 1_64_0、Python3.6和msvc 14.0)

c++ - 在 Mac Yosemite 中设置系统范围路径

c++ - 以 boost ublas 矩阵 matlab 样式插入数据

c++ - 动态字符串数组 C++

c++ - 对 `pthread_key_create' 的 undefined reference ;参数顺序不能解决问题

c++ - 可移植的 C++ 单例 - 何时调用析构函数

java - Android - 隐藏文本 --> 显示文本 2 秒 --> 再次隐藏文本

java - 如何从监视器线程中断另一个线程

c++ - 辛>> "no operator matches these operands"