使用 cpp 恢复线程
Resuming a pthread using cpp
我正在编写一个程序,其中我有一个守护程序线程,只要主线程正在运行,它就会在后台运行。当主线程结束时,我想终止守护进程线程,所以我尝试了两种方法:
- 如果我使用pthread_kill即使我将其初始化为可拆卸,我也会有内存泄漏(无需加入此线程)
- 由于这不起作用,我想在循环中运行守护进程线程,只要全局
bool _daemonRun
为真。 在主线程终止之前,我将_daemonRun
设置为 false,然后在守护程序中我在循环外使用pthread_exit(NULL)
。问题是 - 如何恢复线程?使用条件变量似乎一团糟,因为我不希望线程等待......
有什么想法吗?谢谢
在我看来
,您确实关心守护线程在主线程存在之前正确释放其资源(例如内存)。因此,将其创建为分离线程对我来说似乎是错误的,因为这表明您不在乎该线程何时/是否退出。
因此,我提出以下建议。将守护程序线程创建为普通线程。然后,在主线程存在之前,将_daemonRun
设置为 false
。最后,join() 守护进程线程。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 从不同进程中的另一个线程挂起/恢复线程或进程
- C++ 线程创建/删除与线程停止/恢复
- 实现在多线程代码中安全恢复的断点
- 如何在C++中挂起和恢复 POSIX 线程?
- 我可以在使用 omp_set_num_threads 后使 OpenMP 恢复到理想的线程 # 吗?
- 暂停和恢复多线程环境中另一个线程的线程C++技术建议
- 暂停和恢复线程的最佳解决方案是什么?
- 如何在没有条件变量的情况下阻止线程中的操作,并在Linux中根据信号恢复操作
- 如何阻塞线程并恢复它
- 从另一个线程恢复 asio 协程
- (C++)如何挂起主线程,然后在其中恢复另一个线程
- 创建可挂起/可恢复线程的最佳方法是什么?
- 挂起和恢复一个c++线程中的另一个线程
- 期望可恢复的函数实际上在原始线程中恢复是错误的吗
- 如何在c++中挂起和恢复进程和线程