在ACE中优雅地终止线程

时间:2010-05-01 18:32:03

标签: c++ linux ace

我有一个类似于This one的问题。 但我想在Linux中使用ACE框架实现这一点。这是怎么做的

1 个答案:

答案 0 :(得分:3)

更多信息有助于获得更好的答案:

  • 您的工作线程是否在运行之前等待其他事件?
  • 你的线程如何相互沟通?
  • 您是否始终能够优雅地终止,或者您是否期望必须强行终止某些线程?

你提到的other question提出了一个非常好的观点:

  

通常,线程终止的方式只是从定义线程的函数返回。通常,主线程使用事件对象或简单的整数或布尔值来通知工作线程退出。如果工作线程在WaitForSingleObject中等待,您可能需要将其更改为WaitForMultipleObjects,其中一个对象是一个事件。主线程将调用SetEvent,工作线程将被唤醒并返回。

根据您在ACE中设置的内容,您可以使用从主线程到工作线程的进程间通信来告诉它们停止,它们将在下一次事件检查时获取和处理。或者,您可以使用linux的select

希望这能指出你正确的方向。