linux - 为什么 pthread_exit 使用 void*?
问题描述
我最近开始使用 posix 线程,标准中参数类型的选择让我很好奇。我一直无法回答为什么pthread_exit使用void*而不是int来返回线程状态的问题?(与退出相同)。
我看到的唯一优点是它让程序员可以定义他们想要的状态(例如返回一个指向复杂结构的指针),但我怀疑它是否被广泛使用。
似乎在大多数情况下,由于必要的强制转换,这种选择具有更多的开销。
解决方案
这不仅仅是状态,它是线程的返回值。使用指针允许线程返回指向动态分配的数组或结构的指针。
您无法真正将其与exit()
参数进行比较,因为那是用于向操作系统发送状态。这故意非常简单,以允许与许多操作系统的可移植性。
推荐阅读
- c++ - 是防止部分读取原子存储所必需的“memory_order_relaxed”
- mysql - Use subgroups in databases
- r - 从 R 中不可用的 URL 加载数据集,仅从本地加载:设置问题?
- angular - Creating volume in custom Docker image on GCP causing error
- javascript - 由按钮控制的可折叠 HTML 表格,带有多个具有不同数据集的子表格
- c# - 如何将未知类型的 IList(类型在运行时已知)转换为数组?
- git - github 操作:如何检查当前推送是否有新标签(是新版本)?
- javascript - JavaScript 事件监听器
- java - 如何在firestore中以时间戳的形式保存文本?
- c++ - C++ - 将任何文件的字节读入无符号字符数组