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