pthread_exit
当主线程调用pthread_exit时,其余线程不退出,继续执行
当主线程调用exit/或return时,其余线程退出,整个进程都退出了。
1 #include <pthread.h> 2 #include <stdio.h> 3 #include<stdlib.h> 4 #include <unistd.h> 5 6 #include <pthread.h> 7 8 void* new_thread(void* arg) 9 { 10 while(1) 11 { 12 printf("new thread\n"); 13 fflush(stdout); 14 sleep(2); 15 } 16 return NULL; 17 } 18 19 int main(void) 20 { 21 pthread_t tid; 22 23 int err = pthread_create(&tid, NULL, new_thread, (void *)4); 24 sleep(5); 25 printf("call pthread_exit\n"); 26 fflush(stdout); 27 //pthread_exit(NULL); 28 29 return 0; 30 }
当mian中条用pthread_exit 时,new_thread 继续运行。
当main中直接return时,new_thread 停止运行,进程退出了。