[发明专利]一种对线程池的优化方法、装置、电子设备和存储介质在审
申请号: | 202011453407.1 | 申请日: | 2020-12-11 |
公开(公告)号: | CN113448585A | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 张帆 | 申请(专利权)人: | 北京新氧科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/61;G06F9/48;G06F9/50 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
地址: | 100102 北京市朝阳区创远路*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 线程 优化 方法 装置 电子设备 存储 介质 | ||
本发明公开了一种线程池的编译方法、装置、电子设备和存储介质,所述方法包括:获取字节码文件;根据任意一种预设格式的关键词,判断字节码文件中的目标代码是否命中任意一个关键词;在判断出字节码文件命中任意一个关键词的情况下,将与关键词对应的线程池对象替换为预先配置的自定义线程池对象;根据自定义线程池对象,对字节码文件重新进行编译,生成具有规范格式的APK安装包。本公开实施例提供的线程池的编译方法,能够根据自定义线程池对象,对字节码文件重新进行编译,生成具有规范格式的APK安装包。
技术领域
本发明涉及计算机技术领域,特别涉及一种对线程池的优化方法、装置、电子设备和存储介质。
背景技术
在安卓应用开发过程中,会使用大量的第三方开源框架来提高开发效率。每个框架都维护着对应的线程池,而每个线程池里维护着大量的线程,在应用闲置的情况下,一直维持这些线程将会造成大量的内存资源浪费。有一些第三方框架在线程池的使用上不符合规范,在运行的过程中会重复创建大量的线程,这样,会导致资源消耗严重,使得应用程序一直保持着较高的内存使用,从而增加应用程序的耗电,导致手机发热;甚至可能导致内存溢出、出现应用崩溃的现象。
通常情况下,通过第三方框架暴露出来的一些方法来自定义线程池,让框架在运行的过程中,或者在线程的使用上,均更符合规范。但是,很多的第三方框架和第三方库均没有提供能够直接修改的功能,因此,很难规范第三方框架在线程上的使用。
线程是系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在一个应用程序中至少包含一个进程。
线程池是一个容器,线程池可以创建若干个线程,并将创建的线程均存放在池子中。若有任务需要执行时,则从线程池中取出并执行对应的线程。在处理完任务之后,根据预先配置的线程池使用规则,销毁该线程,或者一直保存该线程,直至等待下一个任务的执行。预先配置的线程池使用规则,可以由预先配置,例如,规则可以为:最多能够执行的任务数量、任务的等待规则、能够一直维持存活的线程数量、最大线程的数量等。
基于现有的线程池编译方法在引入了第三方自定义线程池的前提下,由于没有第三方框架和第三方库的修改权限,因此,很难规范第三方框架在线程上的使用。
发明内容
基于此,有必要针对基于现有的线程池编译方法在引入第三方自定义线程池的前提下,很难规范第三方框架在线程上的使用问题,提供一种线程池的编译方法、装置、电子设备和存储介质。
第一方面,本申请实施例提供了一种线程池的编译方法,所述方法包括:
获取字节码文件;
根据任意一种预设格式的关键词,判断所述字节码文件中的目标代码是否命中任意一个关键词;
在判断出所述字节码文件命中任意一个关键词的情况下,将与所述关键词对应的线程池对象替换为预先配置的自定义线程池对象;
根据所述自定义线程池对象,对所述字节码文件重新进行编译,生成具有规范格式的APK安装包。
在一种实施方式中,所述根据任意一种预设格式的关键词,判断所述字节码文件中的目标代码是否命中任意一个关键词包括:
读取所述字节码文件中的所述目标代码,所述目标代码包括目标变量和目标函数;
根据所述字节码文件中的所述目标变量和/或所述目标函数创建当前线程池表达式;
获取由任意一种预设格式的关键词组成的关键词池;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新氧科技有限公司,未经北京新氧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011453407.1/2.html,转载请声明来源钻瓜专利网。