【问题标题】:platform independent inter thread communication平台无关的线程间通信
【发布时间】:2012-10-28 04:49:42
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • Linux用pthreads,windows用ms线程,不知道windows是否可以中断。
    • 浏览源码,看来Win32线程确实支持中断点。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多