【发布时间】:2012-05-07 08:27:37
【问题描述】:
我正在编写一个程序,其中我有一个守护线程,只要主线程正在运行,它就会在后台运行。当主线程结束我想终止守护线程,所以我尝试了两种方法:
- 如果我使用 pthread_kill,即使我将其初始化为可拆卸,也会出现内存泄漏(无需加入此线程)
- 由于这不起作用,我想只要全局
bool _daemonRun为真,就在循环中运行守护线程。在主线程终止之前,我将_daemonRun设置为false,然后在守护进程中我在循环外使用pthread_exit(NULL)。问题是 - 我如何恢复线程?使用条件变量似乎一团糟,因为我不希望线程等待......
有什么想法吗?谢谢
【问题讨论】:
-
当您只想在进程结束时杀死线程时,我不明白您的意思是恢复它
-
'当进程结束时我想终止线程' - 是否有任何压倒一切的理由明确地这样做?如果没有,请结束该过程并让操作系统清理。