我想在收到停止消息时杀死进程的所有当前正在运行的线程。但我希望进程继续运行以接受新请求。我使用 C++ std::thread 而不是 pthreads
最佳答案
简而言之:您不能在 ISO c++ 中终止线程。你只能例如重复轮询线程内的标志并停止进一步处理。
由于 std::threads 通常是在 linux 上的 pthreads 之上实现的,您也许可以利用该 API,例如看看pthread_cancel .但是请记住,这不会触发任何 C++ 析构函数,因此在执行此操作时必须非常小心以避免资源泄漏。
关于c++ - 终止所有线程或当前正在运行的线程,使进程在 C++ 中保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45578542/