程序完成执行后的线程状态

时间:2013-05-03 11:47:28

标签: windows multithreading

主线程完成执行后内部线程会发生什么?

E.G:

程序1创建5个在后台运行的线程。
   程序1崩溃。
   那些线程还活着吗?

它们会被杀死,因为线程在进程上下文中绑定了吗?

2 个答案:

答案 0 :(得分:2)

所有这些资源都与流程数据结构相关联。当流程终止时,Windows会确保清除所有资源。

没有设法找到对文档的引用[随意添加一些,我相信我在M.Russinovich“Windows Internals”一书中读过这篇文章],但这里有几个关于内存处理的类似答案。线程清理是窗口在进程终止时调用的清理例程的一部分。

https://stackoverflow.com/a/2975844/706456

https://stackoverflow.com/a/654766/706456

答案 1 :(得分:1)

如果线程A创建线程B并且线程A终止,则线程B不会被杀死,因为线程之间没有父/子关系。

其他线程终止的唯一情况是主进程终止时(因此,如果程序崩溃,它们确实会被杀死)。