当前位置: 技术问答>linux和unix
pthread api的这俩api忘记使用是否会导致资源泄漏?
来源: 互联网 发布时间:2017-05-07
本文导语: 1)只有pthread_cleanup_push() 直到进程退出都 没有调用pthead_cleanup_pop() 2)创建了线程,但是线程退出时没有线程调用pthread_join() 问下是否会导致资源泄漏?泄漏的又是啥资源阿 ? | 2)创建...
1)只有pthread_cleanup_push() 直到进程退出都 没有调用pthead_cleanup_pop()
2)创建了线程,但是线程退出时没有线程调用pthread_join()
问下是否会导致资源泄漏?泄漏的又是啥资源阿 ?
2)创建了线程,但是线程退出时没有线程调用pthread_join()
问下是否会导致资源泄漏?泄漏的又是啥资源阿 ?
|
2)创建了线程,但是线程退出时没有线程调用pthread_join()
线程资源没有回收,如果持续创建线程,到一定数量后将不能再创建!
可以在创建的线程中使用pthread_detach(pthread_self()),主线程就可以不调用pthread_join()
1)只有pthread_cleanup_push() 直到进程退出都 没有调用pthead_cleanup_pop()
pthread_cleanup_push压栈的函数在3种情况下会调用, 该线程调用pthread_exit()、其它线程调用pthread_cancel(pid)、该线程调用pthread_cleanup_pop(int execute)
不属于以上三种情况时,如果进程不退出,估计就是有压栈信息的内存泄露
线程资源没有回收,如果持续创建线程,到一定数量后将不能再创建!
可以在创建的线程中使用pthread_detach(pthread_self()),主线程就可以不调用pthread_join()
1)只有pthread_cleanup_push() 直到进程退出都 没有调用pthead_cleanup_pop()
pthread_cleanup_push压栈的函数在3种情况下会调用, 该线程调用pthread_exit()、其它线程调用pthread_cancel(pid)、该线程调用pthread_cleanup_pop(int execute)
不属于以上三种情况时,如果进程不退出,估计就是有压栈信息的内存泄露
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。