我有一个进程,它接收多个作业并从线程池中选择一个线程并为其分配一个作业,这个线程又可以从它自己的线程池中生成另一组线程。现在,当一个作业的STOP请求进入主进程时,它应该被转发到该请求的相应线程,并且与该作业相关联的所有线程应该自行清理并退出。我的问题是如何通知工作线程“停”。
可以使用全局变量,工作线程可以经常轮询它,但是工作人员可以执行许多功能,并且可以在任何地方添加检查。
有干净的方法吗?某种消息传递层。顺便说一句,代码是 C ++
答案 0 :(得分:1)
Boost.Thread库是pthreads的包装器,也可以移植到Windows。 boost::thread
类有interrupt()
方法,它会在下一个interruption point中断线程。
Boost.Thread还有一个thread_group
类,它提供了一组相关的线程。 thread_group
还有一个interrupt()
方法,可以在线程组中的每个线程上调用interrupt()
。