据我所知,当你需要终止一个带有返回值的线程时,pthread_exit()完全等于返回.当人们可以使用一致的方式,即返回,为什么Pthread定义这样一个重复的接口?
我想到的两个原因: pthread_exit
允许您从调用堆栈中的任何深度退出线程.
如果主线程的TLS键要调用其自由函数,则必须在主线程上调用.在这里:"任何已被推送但尚未弹出的取消清理处理程序按照与它们被推送然后执行相反的顺序弹出.在所有取消清理处理程序已执行之后,如果该线程具有任何特定于线程的数据,将以未指定的顺序调用适当的析构函数... 当首次调用main()的线程以外的线程从用于创建它的start例程返回时,对pthread_exit()进行隐式调用.函数的返回值用作线程的退出状态."