Linux多线程实例练习 - pthread_exit 与 pthread_join
pthread_exit():终止当前线程
void pthread_exit(void* retval);
pthread_join():阻塞当前的线程,直到另外一个线程运行结束
int pthread_join(pthread_t thread, void **retval);
1、代码 xx_pthread_exit.c
1 #include <pthread.h> 2 #include <stdio.h> 3 #include <unistd.h> 4 5 #define debug_Msg(fmt, arg...)\ 6 do{\ 7 printf("%s %d : ", __FILE__, __LINE__);\ 8 printf(fmt, ##arg);\ 9 }while(0) 10 11 void * doPrint(void *arg) 12 { 13 debug_Msg("%s\n", (char*)arg); 14 char * p = "thread is over"; 15 pthread_exit(p); 16 } 17 int main() 18 { 19 pthread_t pid; 20 char * pt = "hello pthread"; 21 pthread_create(&pid, NULL, doPrint, pt); 22 void * p = NULL; 23 pthread_join(pid, &p); 24 debug_Msg("return of thread : [%s]\n", (char*)p); 25 26 return 0; 27 }
2、CentOS 下编译通过
g++ -g -c -o xx_pthread_exit.o xx_pthread_exit.c
g++ -g -o xx_pthread_exit xx_pthread_exit.o -lpthread
3、运行结果
$ ./xx_pthread_exit xx_pthread_exit.c 13 : hello pthread xx_pthread_exit.c 24 : return of thread : [thread is over]
本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4258917.html,如需转载请自行联系原作者