线程分离函数pthread_detach

pthread_detach函数实现线程分离,无系统残留资源(服务器,网络经常使用)

 1 #include <stdio.h>
  2 #include <string.h>
  3 #include <pthread.h>
  4 
  5 
  6 void* tnf(void* arg)
  7 {
  8         int n = 3;
  9         while(n--)
 10         {
 11                 printf("thread count :%d\n",n);
 12                 sleep(1);
 13         }
 14         return (void*)1;
 15 }
 16 int main()
 17 {
 18         pthread_t tid;
 19         int err;
 20         void** ret;
 21         pthread_create(&tid,NULL,tnf,NULL);
 22         pthread_detach(tid);
 23         while(1)
 24         {
 25                 err = pthread_join(tid,ret);
 26                 printf("err = %d\n",err);
 27                 if(err != 0)
 28                 {
 29                         printf(strerror(err));
 30                 }
 31                 else
 32                 {
 33                         printf("exit code = %d\n",(int)(*ret));
 34                 }
 35                 sleep(1);
 36         }
 37         return 0;
 38 }
 本例中使用pthread_detach后无需使用pthread_join回收子线程;

版权声明:本文为weixin_37603532原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。