在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在 被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放. 默认情况下,线程被创建成可结合的.为了避免存储器泄漏,每个可结合线程都应该要么被显示地回收,即调用pthread_join:要么通过调用pthread_detach函数被分离. int pthread_join(…
pthread_create函数可以指定新创建线程的属性. pthread_attr_setdetachstate() set detach state attribute in thread attributes object 默认情况下创建的线程的detach state都是PTHREAD_CREATE_JOINABLE,这种属性的线程结束后资源不会释放,等待pthread_join和pthread_detach的调用. 如果detach state 设置成PTHREAD_CREATE_D…