Dus*_*009 3 c linux multithreading pthreads pthread-join
我只是想知道,如果我使用一个属性和"pthread_attr_setdetachstate"带有参数的函数创建一个分离线程 (POSIX) PTHREAD_CREATE_DETACHED,我是否必须在程序结束时销毁该线程?
我知道我必须销毁为创建分离线程而创建的属性,但对于线程本身,我真的不知道。
我认为你不应该破坏分离的线程。
将线程视为共享相同内存区域的进程。所以当一个进程被 fork 并且子进程在主进程之前完成时,子进程的返回值保存在内核内存中,可以被父进程占用。
分离线程只不过是向内核表明不需要线程的返回或退出状态,并且可以在线程完成后忽略。
因此,您不必在程序结束时等待分离线程完成,因为在大多数 POSIX 系统中,如果主线程完成,则该进程的其他线程也将被系统停止,因此这是一个好主意在退出主线程之前等待子线程完成。