[发明专利]协程运行方法、装置、存储介质及电子设备在审
申请号: | 202111470856.1 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114168284A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 陈海亮 | 申请(专利权)人: | 深圳依时货拉拉科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 深圳瑞天谨诚知识产权代理有限公司 44340 | 代理人: | 温青玲 |
地址: | 518000 广东省深圳市福田区梅*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运行 方法 装置 存储 介质 电子设备 | ||
本申请实施例公开了一种协程运行方法、装置、存储介质及电子设备。该方法包括:在协程运行过程中,对创建主体的生命周期变化进行监听;基于监听结果确定当前的生命周期事件;根据生命周期事件和预设映射关系集合执行相应操作,其中,预设映射关系集合包括:样本生命周期事件与样本响应事件之间的对应关系。本方案可实现受生命周期掌控的协程,减少内存泄漏。
技术领域
本申请涉及电子设备技术领域,尤其涉及一种协程运行方法、装置、存储介质及电子设备。
背景技术
随着电子设备处理能力和存储能力的迅猛发展,海量的应用程序得到了迅速传播和使用,提高了用户的生活质量以及使用中的娱乐感。
应用程序在内存环境中的基本执行单元是进程。一个进程可以拥有多个线程,一个线程可以拥有多个协程。相关技术中,可以通过创建一个协程作用域(CoroutineScope)并在协程作用域中执行相应的协程体,以实现协程的创建。然而,通过现有方式创建的协程作用域脱离了创建主体的生命周期,容易造成内存泄漏。例如,当协程体内存在大量耗时操作时,协程持体内持有的指向创建主体的指针会一直被引用,导致创建主体得不到释放,造成内存泄漏。
发明内容
本申请实施例提供一种协程运行方法、装置、存储介质及电子设备,可实现受生命周期掌控的协程,减少内存泄漏。
第一方面,本申请实施例提供一种协程运行方法,包括:
在协程运行过程中,对创建主体的生命周期变化进行监听;
基于监听结果确定当前的生命周期事件;
根据所述生命周期事件和预设映射关系集合执行相应操作,其中,所述预设映射关系集合包括:样本生命周期事件与样本响应事件之间的对应关系。
第二方面,本申请实施例提供了一种协程运行装置,包括:
监听单元,用于在协程运行过程中,对创建主体的生命周期变化进行监听;
确定单元,用于基于监听结果确定当前的生命周期事件;
处理单元,用于根据所述生命周期事件和预设映射关系集合执行相应操作,其中,所述预设映射关系集合包括:样本生命周期事件与样本响应事件之间的对应关系。
在一实施方式中,所述装置还包括:
判断单元,用于在根据所述生命周期事件和预设映射关系集合执行相应操作之前,判断所述生命周期事件是否为销毁事件;
销毁单元,用于在所述判断单元判定为是时,执行针对所述协程的销毁操作。
在一实施方式中,所述处理单元具体用于:
确定所述预设映射关系集合中,是否存在与所述生命周期事件匹配的目标样本生命周期事件;
若存在,则基于所述对应关系确定与所述目标样本生命周期事件对应的目标样本响应事件;
执行所述目标样本响应事件对应的操作。
在一实施方式中,所述处理单元还用于:
若所述预设映射关系集合中不存在与所述生命周期事件匹配的目标样本生命周期事件,则维持所述协程的原有运行逻辑。
在一实施方式中,所述监听单元具体用于:
通过代理类对创建主体的生命周期变化进行监听,其中,所述代理类通过通过目标扩展函数对所述协程的Job类进行方法扩展得到,所述目标扩展函数可监听所述创建主体的生命周期变化。
在一些实施方式中,所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳依时货拉拉科技有限公司,未经深圳依时货拉拉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111470856.1/2.html,转载请声明来源钻瓜专利网。