编辑 > This tutorial 提供了一个很好的答案
如何使用 boost::thread
使类可运行?
class Hello
{
void run();
bool canRun();
boost::condition_variable cond;
boost::mutex mut;
};
Hello::run()
{
boost::unique_lock<boost::mutex> lock(this->mut);
while (!this->canRun())
this->cond.wait(lock);
// do my stuff
}
我不知道我是否应该继承
boost::thread
,在我的类(class)中有一个 boost::thread
属性...我希望能够这样做:
Hello hello = Hello();
hello.run();
hello.stop();
最佳答案
我认为你应该在你的类中放置一个线程实例,在你的 run() 方法中你可以启动线程(当然还有另一个成员函数)。在 stop() 中,您可以在设置 canRun = false
后调用 thread::join() 。
关于c++ - 使用 boost :thread 的可运行类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22879644/