Linux C++程序以一个仍在运行的线程结束后该怎么办

Linux C++ What to do after a program ends with a still running thread?

本文关键字:运行 线程 结束 怎么办 一个 程序 C++ Linux      更新时间:2023-10-16

如果您正在用线程开发程序,但出现了问题。。。,当程序结束时(例如)出现错误*并且没有退出线程时,线程现在该怎么办。它需要重新启动吗?或者如果进程已关闭,则退出线程?还是怎样

每个线程都属于一个进程。当您在应用程序中创建线程时,它们由应用程序的进程所有。当应用程序退出时,无论是正常退出还是出错后退出,进程都会被终止,它拥有的每个线程也会随之终止。

因此,在多线程应用程序中,每个线程总是在应用程序退出时自动终止。

您误解了线程。阅读一些好的POSIX线程教程,然后pthreads(7)。另请参阅高级Linux编程&系统调用(2)

一旦Linux进程终止,它的所有线程都将消失(请参阅NPTL)。

请注意,对于Linux上的当前C++11库,它们的std::thread-s是在pthread之上构建的。

当进程结束时,所有线程也会退出。进程获取的所有资源都将被释放。