我必须分离或加入线程吗?

Must I detach or join a pthread?

本文关键字:线程 分离      更新时间:2023-10-16

pthread_detach()文档说:

pthread_detach()功能应向实施指示 当线程线程时,可以回收该线程的存储 终止。

如果我创建了一个可连接线程并且不分离或连接它,后果是什么?该线程的资源不会被回收?

你回答了你自己的问题? 线程需要系统中的某些资源。 这些将一直保留,直到线程连接,或者线程分离并终止。 (在分离线程之前,系统必须假定您将在将来的某个时候加入它,并且无法释放资源。

错;如果你既不加入也不分离线程,就会泄漏资源。

每个线程都会为其堆栈分配一些内存,可能还会分配一些控制结构,并且不会释放这些内存。在某些操作系统上,可以启动的线程数有限制,并且最终可能会达到无法再启动的状态。

只是与线程关联的资源,这些资源保留用于连接操作(即状态代码和更多)。

"分离"只是意味着我不打算在这个线程上调用 join,因此在线程完成后清理线程特定的数据(这本来可以通过调用 join 来完成)。