如何重用std :: thread作为类的成员

时间:2017-11-01 10:08:02

标签: multithreading c++11 condition-variable stdthread

我有以下简单的方法从lambda

中调用成员函数来启动一个线程
auto worker_thread = std::thread { [this, &some_data] {
    this->SomeMethod(some_data);
}};

问题:
我想让worker_thread成为班级成员。前提是some_data也是会员。我想在调用类构造函数时只创建一次&析构函数调用时会破坏一次。与此同时,我希望能够随意暂停和恢复它。看起来像std::condition_vaiable可能很方便执行这项技术?除了使用std::condition_vaiable之外还有其他方法吗?或者更简单的方法吗?

问题:
如何根据要求设置此项以恢复worker_thread&每次想要执行this->SomeMethod(some_data)时都可以暂停请求,而不必创建它?

0 个答案:

没有答案