我正在浏览pthread_join的手册页,并提到了以下内容
“当可连接线程终止时,其内存资源(线程
描述符和堆栈)直到其他线程执行后才释放
pthread_join就可以了。因此,必须为pthread_join调用一次
创建的每个可连接线程都是为了避免内存泄漏。”
提到这样做的原因是为了避免内存泄漏。但是,我不确定为什么首先要在终止某个特定线程时仍然保留其资源。
贾亚拉杰
最佳答案
线程描述符保持不变,因此可以通过pthread_join(2)
的第二个参数检索线程过程的返回值。这与僵尸进程的想法相同。
在API正式化时,保留终止线程的堆栈可能是特定线程库实现的要求。
关于multithreading - 关于线程的内存资源的重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120467/