如何在Mac上用c++停止正在运行的并行线程
How to stop a running parallel thread with C++ on Mac?
我一直在寻找答案,确实找到了一些可能的方法来停止运行的并行线程与c++,但解决方案通常只适用于Windows(例如,TerminateThread()函数)。是否有一种方法来停止在Mac上运行的并行线程(我使用CodeBlocks) ?
典型的干净/安全设置可能是....
std::atomic<bool> exit{false};
std::thread thread([&]{
while (!exit) { /* do stuff */ }
});
// later, when you want to exit:
exit = true;
// `join` before the `thread` object goes out of scope
thread.join();
从这里你可能会看到有无数种方法可以告诉你的线程停止运行并干净地结束。只要确保您使用的任何方式都是线程安全的(原子或受互斥锁保护),并确保在线程对象超出范围之前调用thread.join()
,或者在您希望阻塞等待线程完成的任何时候。
相关文章:
- 为什么我不能让 3 个网络摄像头与 pthreads 并行运行?
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- System Verilog DPI - 在 cpp 中运行并行线程,在 SV 中运行另一个并行线程
- 如果事件在仍在执行时再次设置,RegisterWaitForSingleObject 是否会并行运行回调?
- 如何并行运行与OpenGL并行的程序
- 在 2 个并行运行的脚本(python 和 C++)之间传递消息
- 在 C++ 中并行重复随机生成,避免多次运行重复
- 从Qt/C++-App并行运行两个Lua函数
- C++ - 谷歌测试 - 如何在不同的目录中并行运行所有测试?
- 如何使用 Turbo C++并行运行两个功能,一个用于键盘,一个用于鼠标?
- OpenMP 似乎不是并行运行的
- 使用 vector<thread> 和 .join() 未并行运行的多线程C++程序
- 最大线程数 - 如何确定C++线程是否并行运行?
- 并行和顺序运行代码时会产生不同的结果
- 如何在for循环(C )中运行并行线程
- 等待条件变量后未并行运行的线程
- 单元测试任务使用 QThreadPool 并行运行
- MFC多线程程序可以以并行方法运行
- 为依赖于先前值的矩阵运行并行代码
- OpenMP -在并行代码中运行并行代码