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版权协议,转载请附上原文出处链接和本声明。