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

【讨论】动态库资源释放问题

    来源: 互联网  发布时间:2016-05-01

    本文导语:  主线程main,后台线程back,动态库lib.so main创建back,back调用lib.so中的函数func,func调用了malloc。 问题是:当main调用pthread_cancel杀掉back时,func尚未执行free释放动态内存,那么func中malloc的内存会自动释放吗?      ...

主线程main,后台线程back,动态库lib.so

main创建back,back调用lib.so中的函数func,func调用了malloc。

问题是:当main调用pthread_cancel杀掉back时,func尚未执行free释放动态内存,那么func中malloc的内存会自动释放吗?
        lib.so中的全局数据存放在何处,是main的数据段,还是在其他数据段?

|

是动态加载libXXX.so吗?
无论在那个线程调用func,malloc分配的内存都属在进程堆上,和平常使用没区别


进程数据段

|
不会自动释放。

|
Require explicit free, or it will cause memory leak.

|
既然是后台线程,又不是子进程,应该不用担心吧。反正主线程还能做善后处理。数据都在该进程的堆里。

|

在调用函数时,被调函数中定义的非static局部变量都在主调进程中的stack中。

可以考虑一下多个进程同时调用某个函数的情形,如果其中的非static局部变量保存在函数库中话,
很显然会出问题,so...


至于lib.so中的全局数据,我想由os管理,这时如果多个进程使用lib.so中的全局变量,就会出问题了。



个人理解

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












  • 相关文章推荐
  • 参数传递的问题!(大家讨论讨论)
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 和Java版高手在线讨论代理服务器的问题,讨论者都有分。
  • Java 访问控制的问题(public,private,protected,(default))!讨论讨论!
  • 这两天本版人气不高,我来发个问题,有关互斥同步的。大家讨论讨论
  • 请问这里可以讨论MINIX的问题吗?
  • 讨论linux的发展前途与有无用处问题。。。。。。。。。。。
  • LINUX下JAVA要代替C..?常跟朋友讨论的一个问题
  • 讨论LUXIN安装问题
  • 大家来讨论一个最实际的问题:)
  • 请问一下,关于arm下的嵌入式linux驱动相关问题请教是应该发在哪个讨论区?
  • 高手请进!讨论一个问题。
  • 关纯DOS下的256色、32K色、64K色问题讨论
  • 有挑战性的问题,大家一起讨论
  • 大家讨论一下指针数组的问题!
  • 老问题新讨论
  • 哇考,为什么在一个帖子里不能回复30次以上啊?这样子怎么和人家讨论问题啊?
  • 我看到大家都在讨论分数的问题,我如何看到自己的分数呢?
  • 请使用QT编程的朋友到以下网址讨论QT中遇到的问题!!!!!!!
  • Java与IE的问题!大家来讨论!
  • Java 可以做拨号程序吗?我只是和大家讨论讨论 不必太认真
  • 欢迎高手来讨论:关于文件格式的大讨论
  • 用java开发一个基于Proxy(代理)的网络计费系统。有兴趣的来讨论讨论
  • 【讨论贴】gcc开发的时候有大家都有什么好的调试方法,来讨论下
  • 讨论讨论,当错误发生时,并用if语句测试出时,应该返回怎样的值
  • 一个面试,是“北京华胜六所”外包给风河(VxWorks)北京研发处,做linux内核开发,大家过来讨论讨论
  • 新建了个QQ群(软件与创业),希望有兴趣的朋友进来讨论讨论软件项目、产品、创业、管理、投资等(代码之外的)观点和想法
  • 用java做c/s结构可行吗???大家来讨论讨论,应该都会有收获。
  • 有没有人讨论value object模式
  • http://www.itpub.net 论坛更换数据库,速度更快,欢迎大家前去讨论!
  • 讨论“内存泄漏”


  • 站内导航:


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

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

    浙ICP备11055608号-3