平台独立的线程间通信

时间:2012-11-08 02:08:50

标签: c++ multithreading operating-system pthreads threadpool

我有一个进程,它接收多个作业并从线程池中选择一个线程并为其分配一个作业,这个线程又可以从它自己的线程池中生成另一组线程。现在,当一个作业的STOP请求进入主进程时,它应该被转发到该请求的相应线程,并且与该作业相关联的所有线程应该自行清理并退出。我的问题是如何通知工作线程“停”。

可以使用全局变量,工作线程可以经常轮询它,但是工作人员可以执行许多功能,并且可以在任何地方添加检查。

有干净的方法吗?某种消息传递层。顺便说一句,代码是 C ++

1 个答案:

答案 0 :(得分:1)

Boost.Thread库是pthreads的包装器,也可以移植到Windows。 boost::thread类有interrupt()方法,它会在下一个interruption point中断线程。

Boost.Thread还有一个thread_group类,它提供了一组相关的线程。 thread_group还有一个interrupt()方法,可以在线程组中的每个线程上调用interrupt()

相关问题