Linux C++ 程序以静止 运行 线程结束后怎么办?
Linux C++ What to do after a program ends with a still running thread?
如果您正在开发一个带有线程的程序并且出了点问题...,那么当程序结束时(例如)出现错误 * 并且没有退出线程时,线程现在怎么办。
需要重启吗?或者退出线程,如果进程关闭?或者什么?
每个线程都属于一个进程。当您在应用程序中创建线程时,它们由应用程序的进程拥有。当您的应用程序退出时,无论是正常退出还是在出错后,进程都会被终止,它拥有的每个线程都会被终止。
所以在多线程应用程序中,每个线程总是在应用程序退出时自动终止。
你误解了线程。读一些不错的POSIX thread tutorial then pthreads(7). See also Advanced Linux Programming & syscalls(2)
一次Linuxprocess has terminated, all its threads are gone (see NPTL).
请注意,对于 Linux 上的当前 C++11 库,它们的 std::thread
-s 构建在 pthreads.
之上
当一个进程结束时,所有的线程也会退出。进程获取的所有资源都会被释放。
如果您正在开发一个带有线程的程序并且出了点问题...,那么当程序结束时(例如)出现错误 * 并且没有退出线程时,线程现在怎么办。 需要重启吗?或者退出线程,如果进程关闭?或者什么?
每个线程都属于一个进程。当您在应用程序中创建线程时,它们由应用程序的进程拥有。当您的应用程序退出时,无论是正常退出还是在出错后,进程都会被终止,它拥有的每个线程都会被终止。
所以在多线程应用程序中,每个线程总是在应用程序退出时自动终止。
你误解了线程。读一些不错的POSIX thread tutorial then pthreads(7). See also Advanced Linux Programming & syscalls(2)
一次Linuxprocess has terminated, all its threads are gone (see NPTL).
请注意,对于 Linux 上的当前 C++11 库,它们的 std::thread
-s 构建在 pthreads.
当一个进程结束时,所有的线程也会退出。进程获取的所有资源都会被释放。