C++ 与平台无关的线程间通信

C++ 与平台无关的线程间通信,c++,multithreading,operating-system,pthreads,threadpool,C++,Multithreading,Operating System,Pthreads,Threadpool,我有一个进程,它接收多个作业,并从线程池中选择一个线程并为其分配一个作业,这个线程可能会从它自己的线程池中生成另一组线程。现在,当一个作业的停止请求到达主进程时,它应该被转发到该请求的相应线程,并且与该作业关联的所有线程都应该清理并退出,我的问题是如何通知工作线程“停止” 可以使用全局变量,工作线程可以频繁轮询它,但是工作线程可以执行很多函数,并且在任何地方添加检查都可以 是否有一个干净的方法?某种消息传递层。顺便说一句,代码是C++该库是pthreads的包装器,也可以移植到Windows。b

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

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

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

该库是pthreads的包装器,也可以移植到Windows。
boost::thread
类有一个
interrupt()
方法,该方法将在下一个时间中断线程


Thread还有一个
Thread\u组
类,它提供了相关线程的集合
thread\u group
还有一个
interrupt()
方法,在线程组中的每个线程上调用
interrupt()

我们使用pthreads for Linux和Ms threads for windows,不确定windows是否有中断。浏览源代码,看来Win32线程确实支持中断点。