【操作系统】怎么回收线程?有哪几种方法?(约148字)

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

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

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

  • retval:指向返回值的指针。

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

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

  • retval:同上。

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

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

  • tid:同上。

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容