linux进程退出,线程资源用pthread_detach释放

linux下,用pthread_create创建线程后,线程的默认状态为joinable,如果程序退出,线程没被join,则会有线程的资源没有被释放。

调用pthread_join可以,但是程序会再调用该函数后阻塞住。

替代的调用pthread_detach,该函数可立即返回,有2种方法。

1:子线程里调用:pthrad_detach(pthread_self());

2:父线程里调用:pthread_detach(thread_id);

调用之后,子进程的资源控制权就交还给父线程了,这样线程退出就不会出现资源泄漏了。



未调用pthread_detach,检测到内存泄漏:

linux进程退出,线程资源用pthread_detach释放_第1张图片

调用pthread_detach后,线程资源被释放。

linux进程退出,线程资源用pthread_detach释放_第2张图片

你可能感兴趣的:(linux)