https://repl.it/repls/ColdSilentTriangles
#include <stdio.h>
#include <pthread.h>
pthread_t th;
void *fp(void *args) {
printf("Thread running...");
pthread_join(th, NULL);
printf("Thread waiting...");
return NULL;
}
int main(void) {
printf("Hello World\n");
pthread_create(&th, NULL, fp, NULL);
pthread_join(th, NULL);
return 0;
}
从man pthread_join
,
pthread_join()函数会暂停调用线程的执行,直到目标线程终止为止,除非目标线程已经终止。
为什么程序不会导致死锁? 为什么没有错误产生? 为什么应该在pthread_join()阻塞线程的情况下在屏幕上输出“线程等待...”?
答案 0 :(得分:3)
records.json
不会阻止执行,而是在您的示例中返回pthread_join
。