其他分享
首页 > 其他分享> > 26、怎么回收线程?有哪几种方法?

26、怎么回收线程?有哪几种方法?

作者:互联网

等待线程结束:int pthread_join(pthread_t tid, void** retval);

主线程调用,等待子线程退出并回收其资源,类似于进程中wait/waitpid回收僵尸进程,调用 pthread_join的线程会被阻塞。

tid:创建线程时通过指针得到tid值。

retval:指向返回值的指针。

 

结束线程:pthread_exit(void *retval);

子线程执行,用来结束当前线程并通过retval传递返回值,该返回值可通过pthread_join获得。

retval:同上。

 

分离线程:int pthread_detach(pthread_t tid);

主线程、子线程均可调用。主线程中pthread_detach(tid),子线程中pthread_detach(pthread_self()),调 用后和主线程分离,子线程结束时自己立即回收资源。

tid:同上。

 

标签:26,join,线程,pthread,tid,哪几种,detach,retval
来源: https://www.cnblogs.com/crbhf/p/15138153.html