首页 > 解决方案 > 为什么 pthread_exit 使用 void*?

问题描述

我最近开始使用 posix 线程,标准中参数类型的选择让我很好奇。我一直无法回答为什么pthread_exit使用void*而不是int来返回线程状态的问题?(与退出相同)。

我看到的唯一优点是它让程序员可以定义他们想要的状态(例如返回一个指向复杂结构的指针),但我怀疑它是否被广泛使用。

似乎在大多数情况下,由于必要的强制转换,这种选择具有更多的开销。

标签: linuxmultithreadingpthreads

解决方案


这不仅仅是状态,它是线程的返回值。使用指针允许线程返回指向动态分配的数组或结构的指针。

您无法真正将其与exit()参数进行比较,因为那是用于向操作系统发送状态。这故意非常简单,以允许与许多操作系统的可移植性。


推荐阅读