在 ACE 中优雅地终止线程

发布于 2024-08-30 15:23:08 字数 177 浏览 8 评论 0原文

我有一个类似于 这个 的问题。 但我想在 Linux 中使用 ACE 框架来实现这一点。有什么方法可以做到这一点

I have a question similar to This one .
But I want to implement this in Linux, using ACE framework. What is the way to do this

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左秋 2024-09-06 15:23:08

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

  • 您的工作线程在运行之前是否正在等待其他事件?
  • 您的线程如何相互通信?
  • 您是否始终能够正常终止,或者您是否预计必须强制终止某些线程?

您提到的其他问题提出了一个非常好的观点:

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

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

希望这能为您指明正确的方向。

A little more information would help obtain a better answer:

  • Are your worker threads waiting on other events prior to running?
  • How do your threads communicate with one another?
  • Will you always have the ability to terminate gracefully, or are you anticipating having to force terminate some threads?

The other question you mentioned made a very good point:

Typically, the way that a thread terminates is simply to return from the function that defines the thread. Generally, the main thread signals the worker thread to exit using an event object or a simply an integer or boolean value. If the worker thread is waiting in a WaitForSingleObject, you may need to change it to a WaitForMultipleObjects, where one of the objects is an event. The main thread would call SetEvent and the worker thread would wake up and return.

Depending on what you've setup in ACE, you can use interprocess communication from your main thread to your worker threads to tell them to stop, which they would pickup and handle on their next event check. Alternatively, you can use linux's select.

Hope this points you in the right direction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文