linux下,用pthread_create创建线程后,线程的默认状态为joinable,如果程序退出,线程没被join,则会有线程的资源没有被释放。
调用pthread_join可以,但是程序会再调用该函数后阻塞住。
替代的调用pthread_detach,该函数可立即返回,有2种方法。
1:子线程里调用:pthrad_detach(pthread_self());
2:父线程里调用:pthread_detach(thread_id);
调用之后,子进程的资源控制权就交还给父线程了,这样线程退出就不会出现资源泄漏了。
未调用pthread_detach,检测到内存泄漏:
调用pthread_detach后,线程资源被释放。