[发明专利]内存的申请使用方法及装置在审
申请号: | 201810750692.X | 申请日: | 2018-07-10 |
公开(公告)号: | CN109144902A | 公开(公告)日: | 2019-01-04 |
发明(设计)人: | 任广磊 | 申请(专利权)人: | 北京佳讯飞鸿电气股份有限公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14;G06F9/50 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王术兰 |
地址: | 100095 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 线程 引用 应用程序提供 资源使用效率 内存使用率 内存释放 内存泄露 再次利用 资源池 调用 申请 指针 回收 优化 统计 访问 | ||
本发明提供了一种内存的申请使用方法及装置,利用任务线程与资源池的交互,实现线程对内存的调用,内存释放后能够立即回收并再次利用,提高资源使用效率,并且消除了引用计数循环引用导致的内存泄露问题。通过ID访问内存,消除了野指针使用可能。方便统计内存使用率,可为优化应用程序提供手段。
技术领域
本发明涉及资源管理技术领域,具体而言,涉及一种内存的申请使用方法及装置。
背景技术
目前在多线程编程,对资源的使用一般采用引用计数、垃圾回收的方式使用资源。
比如在C++中引入了智能指针,程序员不用再纠结于建立出来的内存在哪释放比较合适这种问题。比如当一个资源被多个线程共享时,程序员需要在所有模块的生命周期都结束时,由最后一个不使用该指针的线程触发指针的释放行为。
然而凡事都不会尽善尽美,智能指针还是存在一定的缺陷:
(1)当循环引用发生时,基于引用计数的智能指针时,会带来的内存泄漏。
(2)资源释放需要等到引用计数为0时才能释放,资源利用率低。
(3)增加程序复杂性,当发生内存泄露问题时定位过程复杂。
发明内容
针对上述现有技术中存在的问题,本发明提供了一种内存的申请使用方法。
第一方面,本发明实施例提供了一种内存的申请使用方法,应用于任务线程,所述方法包括:
向资源池发送资源申请请求,以触发资源池分配内存;
接收所述资源池发送的内存信息,所述内存信息至少包括内存标识和内存地址;
向所述资源池发送资源使用请求,以触发所述资源池检测所述内存是否有效;
若有效,则接收所述资源池发送的资源有效信息,并使用内存。
进一步的,若有效,则接收所述资源池发送的资源有效信息,并使用内存之后,所述方法还包括:
向所述资源池发送释放资源请求,以触发所述资源池释放资源。
进一步的,若所述内存无效,则接收所述资源池发送的资源无效信息,并再次向所述资源池请求内存。
第二方面,本发明实施例提供了一种内存的申请使用方法,应用于资源池,所述方法包括:
接收所述任务线程发送的资源申请请求,向所述任务线程分配内存并发送内存信息,所述内存信息至少包括内存标识和内存地址;
接收所述任务线程发送的资源使用请求,检测所述内存是否有效;
若有效,则向任务线程发送资源有效信息,以触发所述任务线程使用所述内存。
进一步的,若有效,则向任务线程发送资源有效信息,以触发所述任务线程使用所述内存之后,所述方法还包括:
接收所述任务线程发送的资源释放请求,释放所述内存,并向所述任务线程发送释放成功信息。
第三方面,本发明实施例提供了一种内存的申请使用装置,应用于任务线程,所述装置包括:
申请模块,用于向资源池发送资源申请请求,以触发资源池分配内存;
接收模块,用于接收所述资源池发送的内存信息,所述内存信息至少包括内存标识和内存地址;
检测模块,用于向所述资源池发送资源使用请求,以触发所述资源池检测所述内存是否有效;
使用模块,用于若有效,则接收所述资源池发送的资源有效信息,并使用内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京佳讯飞鸿电气股份有限公司,未经北京佳讯飞鸿电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810750692.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:公式化虚拟地址转换
- 下一篇:一种云终端智能管理USB设备的方法