pthread_detach()
文档说:
该
pthread_detach()
函数应向实现指示线程线程的存储可以在该线程终止时回收。
如果我创建了一个可连接的线程并且不分离或连接它,会有什么后果?该线程的资源不会被回收?
你是在自问自答?线程需要系统中的某些资源。这些将一直保留,直到线程被加入,或者它被分离并终止。(在您分离线程之前,系统必须假设您将来某个时候会加入它,并且无法释放资源。)
只是与线程相关联的资源,为连接操作而保留(即状态代码和更多)。
“分离”只是意味着我不会在这个线程上调用 join 所以当线程完成时清理线程特定的数据(这将通过调用 join 来完成)。
这是正确的; 如果您既不加入也不分离线程,您将泄漏资源。
每个线程都会为其堆栈分配一些内存,可能还有一些控制结构,这些内存不会被释放。在某些操作系统上,您可以启动的线程数量是有限的,您最终可能会进入无法再启动的状态。