调用成功完成后,pthread_join() 将返回零。其他任何返回值都表示出现了错误。如果检测到以下任一情况,pthread_join() 将失败并返回相应的值。
ESRCH
描述:没有找到与给定的线程 ID 相对应的线程。
EDEADLK
描述:将出现死锁,如一个线程等待其本身,或者线程 A 和线程 B 互相等待。
EINVAL
描述:与给定的线程 ID 相对应的线程是分离线程。
pthread_join() 仅适用于非分离的目标线程。如果没有必要等待特定线程终止之后才进行其他处理,则应当将该线程分离。