我正在调试一个问题,其中有一个线程在主线程退出后继续运行。它停留在循环中,等待另一个线程更改变量。
我试图理解在主线程退出后进程将在什么情况下继续运行。我在用 32位linux 克++ 并行线程
答案 0 :(得分:2)
如果使用pthread_exit()退出main()函数,则当其他线程完成时,该进程将退出。它没有任何异常。
答案 1 :(得分:0)
这是一种非常奇怪的行为,因为只有进程才能成为僵尸。 线程放在主程序线程范围的内存中。 简化甚至分离的线程在主线程完成时被系统杀死。 你能发一个代码吗?
答案 2 :(得分:0)
这不是C ++问题。它关于pthreads和linux进程管理
通常,会发生过程破坏 当进程调用exit()时 系统调用,要么是明确的 准备终止或隐含 从任何主子程序返回 程序(即C编译器 在main()之后调用exit() 返回)。
http://www.informit.com/articles/article.aspx?p=370047&seqNum=4
读完之后,我会说你看到的行为是不正常的。我在Windows上看过类似的东西。我不相信它的规格。它是操作系统,运行时库或其他任何内容的错误。