1

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

4

1 回答 1

2

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

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

于 2017-08-08T22:03:01.287 回答