pthread api的这俩api忘记使用是否会导致资源泄漏?

方紫涵 2014-01-07 05:47:49
1)只有pthread_cleanup_push() 直到进程退出都 没有调用pthead_cleanup_pop()
2)创建了线程,但是线程退出时没有线程调用pthread_join()

问下是否会导致资源泄漏?泄漏的又是啥资源阿 ?
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
非凡glj 2014-01-08
  • 打赏
  • 举报
回复
引用 3 楼 xwhbwas2008 的回复:
[quote=引用 2 楼 zgglj 的回复:] 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) 不属于以上三种情况时,如果进程不退出,估计就是有压栈信息的内存泄露
多谢 问下你平时都是看哪些书或者资料来学习linux编程?推荐下[/quote] 初学时看《Unix环境高级编程》,网络部分看《Unix网络编程》,多写写代码,不懂的多google和baidu
方紫涵 2014-01-08
  • 打赏
  • 举报
回复
引用 2 楼 zgglj 的回复:
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) 不属于以上三种情况时,如果进程不退出,估计就是有压栈信息的内存泄露
多谢 问下你平时都是看哪些书或者资料来学习linux编程?推荐下
非凡glj 2014-01-07
  • 打赏
  • 举报
回复
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) 不属于以上三种情况时,如果进程不退出,估计就是有压栈信息的内存泄露
方紫涵 2014-01-07
  • 打赏
  • 举报
回复
有好好方法可以避免泄漏不?

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧