我正在阅读pthread_join的手册页,并提到了以下内容
“当可连接线程终止时,其内存资源(线程 在另一个线程执行之前,不会释放描述符和堆栈 pthread_join就可以了。因此,必须为pthread_join调用一次 创建每个可连接线程以避免内存泄漏。“
提到这样做的原因是为了避免内存泄漏。但是,我不确定为什么首先需要在特定线程的资源终止时保留其资源。
贾雅拉杰
答案 0 :(得分:1)
保留线程描述符,以便可以通过pthread_join(2)
的第二个参数检索线程过程返回值。这与僵尸进程的想法相同。
保持终止线程的堆栈可能是API正式化时特定线程库实现的要求。