下面是期望程序陷入死锁的程序,因为 pthread_join() 是线程上的阻塞等待(它正在等待终止)。
但我看到 pthread_join() 不会阻塞并返回失败(35)
你能帮我理解,为什么 pthread_join() 会解除阻塞吗?因为主线程尚未终止,可能这应该是死锁?
#include <pthread.h>
int
main(int argc, char *argv[])
{
void *res;
int s;
printf("Message from main()\n");
s = pthread_join(pthread_self(), &res);
if (s != 0)
printf("pthread_join(): %d",s);
printf("Thread returned %d\n", (int) res);
exit(0);
}
这是输出:
Message from main()
pthread_join(): 35
Thread returned 134514009