c++ - 终止所有线程或当前正在运行的线程,使进程在 C++ 中保持事件状态

标签 c++ linux terminate terminate-handler

我想在收到停止消息时杀死进程的所有当前正在运行的线程。但我希望进程继续运行以接受新请求。我使用 C++ std::thread 而不是 pthreads

最佳答案

简而言之:您不能在 ISO c++ 中终止线程。你只能例如重复轮询线程内的标志并停止进一步处理。

由于 std::threads 通常是在 linux 上的 pthreads 之上实现的,您也许可以利用该 API,例如看看pthread_cancel .但是请记住,这不会触发任何 C++ 析构函数,因此在执行此操作时必须非常小心以避免资源泄漏。

关于c++ - 终止所有线程或当前正在运行的线程,使进程在 C++ 中保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45578542/

相关文章:

c++ - VL_feat Matlab GCC 无法编译

C++:如何为安全系统调用转义用户输入?

python - 创建一个类似 eclipse 的终止按钮

ios - 当 iOS 应用程序从应用程序切换器中滑动时调用哪个事件?

c++ - 没有 lodctr 的 c++ 中的性能计数器

C++ 打开一个文件并写入文件的任意位置

linux - shell 脚本 : Using own IP adresss as variable

multithreading - 使Rust线程退出阻塞操作的标准方法是什么?

python - 在 python 3.x 的 for 循环中,对象是否更改为不可变的?

linux - 如何监视新的网络连接 TTL