多线程编程指南

pthread_join 返回值

调用成功完成后,pthread_join() 将返回零。其他任何返回值都表示出现了错误。如果检测到以下任一情况,pthread_join() 将失败并返回相应的值。


ESRCH

描述:

没有找到与给定的线程 ID 相对应的线程。


EDEADLK

描述:

将出现死锁,如一个线程等待其本身,或者线程 A 和线程 B 互相等待。


EINVAL

描述:

与给定的线程 ID 相对应的线程是分离线程。

pthread_join() 仅适用于非分离的目标线程。如果没有必要等待特定线程终止之后才进行其他处理,则应当将该线程分离。