一、什么是线程分离
  • 如果线程未分离:线程的终止状态会一直保存,直到另外一个线程对该线程调用pthread_join获取其终止状态,终止状态才会被释放
  • 如果线程已经被分离:线程的底层存储资源可以在线程终止时立即被回收
  • 在线程被分离后,我们不能用pthread_join函数等待它的终止状态,因为对分离状态的线程调用pthread_join会产生未定义行为
二、线程分离函数(pthread_detach)
#include <pthread.h>
int pthread_detach(pthread_t tid);

//返回值:成功返回0;否则返回错误编号 
  • 功能:用来分离线程
  • 参数:要分离的线程tid
三、附加
  • 在此处我们是使用pthread_detach函数来设置一个已经运行的线程分离
  • 在另一篇文章中,我们也可以设置在创建线程时就将线程设置为分离状态,见:javascript:void(0)