当前位置:  技术问答>linux和unix

关于pthread_cancel()之后的内存问题

    来源: 互联网  发布时间:2015-05-25

    本文导语:  我调用了pthread_creat()来生成一个新的线程来执行,我的一个操作。这个操作是一个循环的操作。里面的变量都不是new出来的,都是中规中居的,类似于char str[360]; 现在,我在父进程中,调用pthread_cancel()来cancel这个新...

我调用了pthread_creat()来生成一个新的线程来执行,我的一个操作。这个操作是一个循环的操作。里面的变量都不是new出来的,都是中规中居的,类似于char str[360]; 现在,我在父进程中,调用pthread_cancel()来cancel这个新的线程。请问各位高手,在那个新的线程中的内存释放情况是怎样的?系统是否可以给我自动的释放内存?

|
系统可以自动清除线程执行体中的局部变量
如果没有将线程设置成为detach状态,你不调用pthread_join,无法释放线程占用的系统资源
如果你使用new/malloc分配的内存必须使用delete/free释放
你可以注册线程退出回调,在回调中释放你请求的资源
 man pthread_cleanup_push

|
系统不会自动释放。看pthread_cleanup_push和pthread_cleanup_pop的帮助。
cancel本来就是个陷阱。

|
1. 你可以将子线程用pthread_detach进行分离,就无需pthread_join了,
2. 可以采用线程变量嘛,

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • pthread_cancel()返回值为3,是什么原因?
  • 先pthread_cancel()再pthread_join(),主线程退出?
  • pthread_cancel和pthread_cond_wait
  • 大家帮忙看看这个pthread_cancel怎么没有起到作用?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3