【发布时间】:2017-02-25 10:56:19
【问题描述】:
在一个项目中,我们在一个包装类中创建多个状态机。每个包装器都在它自己的线程中运行。作业完成后,包装类析构函数被调用,我们希望在其中停止线程。
虽然如果我们使用thread.join(),我们会遇到死锁(因为它试图加入自己)。我们可以以某种方式向另一个线程发出信号,但这似乎有点混乱。
有没有办法在对象销毁时正确终止运行类的线程?
【问题讨论】:
-
我在类中使用线程,通常具有有关系。该类形成了 API 来指导应该在线程函数中完成的事情。如果您使用 FSM,您可能还对我的 STTCL 框架感兴趣。
-
当包装器的“工作完成”时,一定会返回对应的线程函数吗?
标签: c++ multithreading c++11