Linux C++程序以一个仍在运行的线程结束后该怎么办
Linux C++ What to do after a program ends with a still running thread?
如果您正在用线程开发程序,但出现了问题。。。,当程序结束时(例如)出现错误*并且没有退出线程时,线程现在该怎么办。它需要重新启动吗?或者如果进程已关闭,则退出线程?还是怎样
每个线程都属于一个进程。当您在应用程序中创建线程时,它们由应用程序的进程所有。当应用程序退出时,无论是正常退出还是出错后退出,进程都会被终止,它拥有的每个线程也会随之终止。
因此,在多线程应用程序中,每个线程总是在应用程序退出时自动终止。
您误解了线程。阅读一些好的POSIX线程教程,然后pthreads(7)。另请参阅高级Linux编程&系统调用(2)
一旦Linux进程终止,它的所有线程都将消失(请参阅NPTL)。
请注意,对于Linux上的当前C++11库,它们的std::thread
-s是在pthread之上构建的。
当进程结束时,所有线程也会退出。进程获取的所有资源都将被释放。
相关文章:
- 使用基类中的派生方法运行线程,而无需使用模板
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 将项目添加到队列时运行线程
- 运行线程和线程对象之间的关系
- 在 gtest 中运行线程
- 是否有一种可接受的运行线程或按顺序执行的方法
- 从类中运行线程
- 如何在第三方函数调用之前同时运行线程
- 在优先级最低的核心中运行线程
- 在C++中并行运行线程
- 在C 11中的背景中运行线程
- 在运行线程中处理事件
- 使用对象生存期运行线程
- WINAPI CreateThread并不总是运行线程
- 树莓派与 c++ 运行线程,在网络上发布数据
- 使用变量类型 std::function 运行线程
- Eclipse CDT 多线程调试不是最佳的 - 如何以独占方式运行线程
- 在 C 语言的后台运行线程
- 正在运行线程
- 在远程计算机上运行线程