2012-11-08 57 views
0

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

可以使用全局变量,并且工作线程可以频繁地轮询它,但是有很多函数可以工作,并且可以在任何地方添加检查。

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

回答

1

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

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

+0

我们针对Linux使用pthreads和针对windows的Ms线程,但不确定中断是否可用于Windows。 – vgeta

+0

浏览源代码时,似乎Win32线程确实支持中断点。 –