使用pthread_join()

时间:2014-04-11 15:57:07

标签: c linux multithreading pthreads posix

我想知道,如果我们在没有 pthread_join 的情况下执行 pthread_create 会发生什么?

谁将“清理”“未加入”线程的所有记忆。

3 个答案:

答案 0 :(得分:1)

当流程终止时,与流程关联的所有资源都将不复存在。 (这当然不包括进程创建的共享资源,如文件系统中的文件,共享内存段等)。在此之前,未连接的线程将继续消耗资源,可能会调用将来对{的调用{1}}甚至pthread_create失败。

答案 1 :(得分:0)

如果在不使用pthread_join的情况下创建线程,那么当主线程完成执行时,main函数中创建的所有其他线程都将被停止,因此不会完成执行其中的整个语句。

查看Pthread_join的文档。

它将使主线程挂起,直到生成的线程完成执行。

答案 2 :(得分:0)

好吧,假设它是一个不需要或尝试显式终止的应用程序生命周期线程,操作系统将在其进程终止时(在所有非平凡的操作系统上)执行此操作。