和多进程一样,多线程也有自己的等待函数。这个等待函数就是pthread_join函数。那么这个函数有什么用呢?我们其实可以用它来等待线程运行结束。
- #include <stdio.h>
- #include <pthread.h>
- #include <unistd.h>
- #include <stdlib.h>
- void func(void* args)
- {
- sleep(2);
- printf("this is func!\n");
- }
- int main()
- {
- pthread_t pid;
- if(pthread_create(&pid, NULL, func, NULL))
- {
- return -1;
- }
- pthread_join(pid, NULL);
- printf("this is end of main!\n");
- return 0;
- }
编写wait.c文件结束之后,我们就可以开始编译了。首先你需要输入gcc wait.c -o wait -lpthread,编译之后你就可以看到wait可执行文件,输入./wait即可。
- [test@localhost thread]$ ./thread
- this is func!
- this is end of main!