gpt4 book ai didi

c++ - 使用 boost :thread 的可运行类

转载 作者:太空狗 更新时间:2023-10-29 20:40:44 27 4
gpt4 key购买 nike

编辑> 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,在我的类中有一个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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com