multithreading - 关于线程的内存资源的重新分配

标签 multithreading

我正在浏览pthread_join的手册页,并提到了以下内容

“当可连接线程终止时,其内存资源(线程
描述符和堆栈)直到其他线程执行后才释放
pthread_join就可以了。因此,必须为pthread_join调用一次
创建的每个可连接线程都是为了避免内存泄漏。”

提到这样做的原因是为了避免内存泄漏。但是,我不确定为什么首先要在终止某个特定线程时仍然保留其资源。

贾亚拉杰

最佳答案

线程描述符保持不变,因此可以通过pthread_join(2)的第二个参数检索线程过程的返回值。这与僵尸进程的想法相同。

在API正式化时,保留终止线程的堆栈可能是特定线程库实现的要求。

关于multithreading - 关于线程的内存资源的重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120467/

相关文章:

python - 在 Python 中使用带线程的全局字典

wpf - 更新 UI 异步?

vb.net - 跨线程操作无效 VB.NET

c++ - 静态无功能线程安全吗?

c - 多线程素数生成器

java - 关于相同/不同对象上的 java 线程的混淆

swift - 了解ios中异步工作的GCD任务的顺序

c# - 由于挂起的数据库调用而取消线程

c# - 使用字符串作为锁定对象是否可以?

java - 什么时候应该使用多线程?如果不同的线程执行相互独立的任务,多线程是否有益?