我有一个关于C并发编程的问题。
在pthread库中,pthread_join
的原型是:
int pthread_join(pthread_t tid, void **ret);
pthread_exit
的原型是:
void pthread_exit(void *ret);
我有点困惑,为什么pthread_join
从回收的线程中获取进程的返回值时需要使用指向void
指针的指针,而pthread_exit
只需要使用指向void
的指针作为退出的线程的返回值呢?我的意思是它们基本上都是线程的返回值,为什么类型会有差异?
pthread_exit
中定义ret为void *
类型,它总是为空或一些其他常量值? - stonestrong