gpt4 book ai didi

C++:如何在没有特定 "interruption points"的情况下干净地终止线程

转载 作者:行者123 更新时间:2023-11-30 05:35:22 24 4
gpt4 key购买 nike

有没有办法以正确调用所有析构函数的方式中断/终止 C++ 线程? Boost 有一个 way中断一个线程,但它需要我在代码中定义“中断点”。我无法定义“中断点”,因为将在线程中运行的代码是未知的。

附言目标架构是使用 MSVC 编译的 Intel x86_64 上的 Windows x64,因此也将采用基于 WinAPI/MSVC 的解决方案:-)

最佳答案

如果将在线程中运行的代码未知或不受您的控制,则没有干净的方法来终止该线程。唯一干净的方法是让在该线程中运行的代码进行协作。

如果您可以协调一种方式在它们之间传递您需要的任何数据,您可以将该代码放在一个单独的进程中。然后,您可以在需要时终止该进程,这在释放操作系统资源方面基本上是干净的,但就让未知代码运行析构函数而言,它并不是干净的。

关于C++:如何在没有特定 "interruption points"的情况下干净地终止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33914789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com