CN105245372A - 一种基于缓存和异步机制的加载网络资源的优化方法 - Google Patents
一种基于缓存和异步机制的加载网络资源的优化方法 Download PDFInfo
- Publication number
- CN105245372A CN105245372A CN201510656235.0A CN201510656235A CN105245372A CN 105245372 A CN105245372 A CN 105245372A CN 201510656235 A CN201510656235 A CN 201510656235A CN 105245372 A CN105245372 A CN 105245372A
- Authority
- CN
- China
- Prior art keywords
- thread
- asynchronous
- task
- buffer memory
- optimization method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000005457 optimization Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 230000001360 synchronised effect Effects 0.000 abstract 2
- 230000001934 delay Effects 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于缓存和异步机制的加载网络资源的优化方法,属于资源优化领域;本发明在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,利用同步线程池执行任务,将产生的数据进行内存缓存,将产生的文件保存到SD卡上;防止UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生。
Description
技术领域
本发明公开一种加载网络资源的优化方法,属于资源优化领域,具体地说是一种基于缓存和异步机制的加载网络资源的优化方法。
背景技术
随着技术的发展,移动设备已经成为人们日常生活中必不可少的工具,移动设备的配置越来越高,同时用户对移动设备的体验要求也越来越高。但移动设备与互联网的交互,由于信息量大,往往会出现卡顿或者无法加载的现象,使用户体验大幅度降低。通常为了提高体验效果,对于占用CPU较多的数据操作尽可能放在一个单独的线程中进行,通过handler等方式把执行的结果交于UI线程显示。而目前Android提供了AsyncTask,Hanlder、Message和Thread的组合。对于多线程的处理,有时加载网络资源时UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生,本发明针对上述问题,提高一种加载网络资源的优化方法,采用线程池及Android系统自身程序,针对Android系统的移动设备利用多线程加载网络资源时,防止UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生。
发明内容
本发明针对现有技术中移动设备Android系统中多线程的处理,有时加载网络资源时UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生的问题,提供一种基于缓存和异步机制的加载网络资源的优化方法,针对Android系统的移动设备利用多线程加载网络资源时,防止UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生。
本发明提出的具体方案是:
一种基于缓存和异步机制的加载网络资源的优化方法,在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,利用同步线程池执行任务,将产生的数据进行内存缓存,将产生的文件保存到SD卡上。
利用异步线程池排列任务,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,每个线程都使用默认的堆栈大小,以默认的优先级运行。
利用Android系统中AsyncTask的THREAD_POOL_EXECUTOR异步线程方法进行异步线程池排列任务。
利用Android系统中AsyncTask的SERIAL_EXECUTOR同步线程方法在同步线程池执行任务,SERIAL_EXECUTOR在THREAD_POOL_EXECUTOR的基础上添加一个mTasks的集合来保证任务的顺序执行。
利用Android系统中MemoryCache内存缓存把数据保存在内存中,利用FileCache文件缓存类把文件保存到SD卡上。
MemoryCache内存缓存,当缓存的数据超过设定的内存限制就删除最先缓存进来的数据。
本发明的有益之处是:
本发明提供一种基于缓存和异步机制的加载网络资源的优化方法,在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,利用同步线程池执行任务,将产生的数据进行内存缓存,将产生的文件保存到SD卡上,针对Android系统的移动设备利用多线程加载网络资源时,防止UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生,,更加有利用移动设备加载网络资源时的优化。
附图说明
图1本发明方法流程示意图。
具体实施方式
一种基于缓存和异步机制的加载网络资源的优化方法,在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,利用同步线程池执行任务,将产生的数据进行内存缓存,将产生的文件保存到SD卡上。
利用异步线程池排列任务,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,每个线程都使用默认的堆栈大小,以默认的优先级运行。
利用Android系统中AsyncTask的THREAD_POOL_EXECUTOR异步线程方法进行异步线程池排列任务。
利用Android系统中AsyncTask的SERIAL_EXECUTOR同步线程方法在同步线程池执行任务,SERIAL_EXECUTOR在THREAD_POOL_EXECUTOR的基础上添加一个mTasks的集合来保证任务的顺序执行。
利用Android系统中MemoryCache内存缓存把数据保存在内存中,利用FileCache文件缓存类把文件保存到SD卡上。
MemoryCache内存缓存,当缓存的数据超过设定的内存限制就删除最先缓存进来的数据。
利用上述方法结合附图对本发明做进一步说明。
一种基于缓存和异步机制的加载网络资源的优化方法,在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,每个线程都使用默认的堆栈大小,以默认的优先级运行,其中可以利用Android系统中AsyncTask的THREAD_POOL_EXECUTOR异步线程方法进行异步线程池排列任务,它的队列size是128,它的调度规则主要参考核心池大小,队列大小,以及最大线程数,异常处理Handler等参数;
利用Android系统中AsyncTask的SERIAL_EXECUTOR同步线程方法在同步线程池执行任务,SERIAL_EXECUTOR在THREAD_POOL_EXECUTOR的基础上添加一个mTasks的集合来保证任务的顺序执行;
利用Android系统中MemoryCache内存缓存把数据保存在内存中,利用FileCache文件缓存类把文件保存到SD卡上,其中MemoryCache内存缓存,当缓存的数据超过设定的内存限制就删除最先缓存进来的数据。
参考附图当移动设备加载网络后,启动线程池,利用异步线程池排列任务,利用同步线程池执行任务,图中给出4个线程任务,优先级相同的情况下,并发执行,将产生的数据进行内存缓存,将产生的文件保存到SD卡上。
本发明利用上述方法,针对Android系统的移动设备利用多线程加载网络资源时,防止UI线程出现卡顿甚至UI僵死的情况,以及网络传输延迟的现象时有发生,更加有利用移动设备加载网络资源时的优化。
Claims (6)
1.一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于在移动设备的Android系统中构建异步和同步线程池,利用异步线程池排列任务,利用同步线程池执行任务,将产生的数据进行内存缓存,将产生的文件保存到SD卡上。
2.根据权利要求1所述的一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于利用异步线程池排列任务,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,每个线程都使用默认的堆栈大小,以默认的优先级运行。
3.根据权利要求2所述的一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于利用Android系统中AsyncTask的THREAD_POOL_EXECUTOR异步线程方法进行异步线程池排列任务。
4.根据权利要求3所述的一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于利用Android系统中AsyncTask的SERIAL_EXECUTOR同步线程方法在同步线程池执行任务,SERIAL_EXECUTOR在THREAD_POOL_EXECUTOR的基础上添加一个mTasks的集合来保证任务的顺序执行。
5.根据权利要求1-3任一项所述的一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于利用Android系统中MemoryCache内存缓存把数据保存在内存中,利用FileCache文件缓存类把文件保存到SD卡上。
6.根据权利要求5所述的一种基于缓存和异步机制的加载网络资源的优化方法,其特征在于MemoryCache内存缓存,当缓存的数据超过设定的内存限制就删除最先缓存进来的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510656235.0A CN105245372A (zh) | 2015-10-12 | 2015-10-12 | 一种基于缓存和异步机制的加载网络资源的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510656235.0A CN105245372A (zh) | 2015-10-12 | 2015-10-12 | 一种基于缓存和异步机制的加载网络资源的优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105245372A true CN105245372A (zh) | 2016-01-13 |
Family
ID=55042883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510656235.0A Pending CN105245372A (zh) | 2015-10-12 | 2015-10-12 | 一种基于缓存和异步机制的加载网络资源的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105245372A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301091A (zh) * | 2016-04-14 | 2017-10-27 | 北京京东尚科信息技术有限公司 | 资源分配方法和装置 |
CN112148455A (zh) * | 2020-09-29 | 2020-12-29 | 星环信息科技(上海)有限公司 | 一种任务处理方法、设备及介质 |
CN112486707A (zh) * | 2020-12-14 | 2021-03-12 | 中国人民银行清算总中心 | 基于Redis的消息异步消费方法及装置 |
CN113254223A (zh) * | 2021-07-14 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种系统重启后的资源分配方法、系统及相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
CN102594860A (zh) * | 2010-12-02 | 2012-07-18 | 微软公司 | 混合同步和异步数据流 |
CN102929823A (zh) * | 2012-09-08 | 2013-02-13 | 佳都新太科技股份有限公司 | 一种基于线程池的多串口通讯系统及方法 |
CN103197968A (zh) * | 2013-03-18 | 2013-07-10 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及系统 |
CN103455356A (zh) * | 2013-09-05 | 2013-12-18 | 中国计量学院 | 多核移动设备上3d模型的并发加载及渲染方法 |
-
2015
- 2015-10-12 CN CN201510656235.0A patent/CN105245372A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
CN102594860A (zh) * | 2010-12-02 | 2012-07-18 | 微软公司 | 混合同步和异步数据流 |
CN102929823A (zh) * | 2012-09-08 | 2013-02-13 | 佳都新太科技股份有限公司 | 一种基于线程池的多串口通讯系统及方法 |
CN103197968A (zh) * | 2013-03-18 | 2013-07-10 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及系统 |
CN103455356A (zh) * | 2013-09-05 | 2013-12-18 | 中国计量学院 | 多核移动设备上3d模型的并发加载及渲染方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301091A (zh) * | 2016-04-14 | 2017-10-27 | 北京京东尚科信息技术有限公司 | 资源分配方法和装置 |
CN112148455A (zh) * | 2020-09-29 | 2020-12-29 | 星环信息科技(上海)有限公司 | 一种任务处理方法、设备及介质 |
CN112486707A (zh) * | 2020-12-14 | 2021-03-12 | 中国人民银行清算总中心 | 基于Redis的消息异步消费方法及装置 |
CN112486707B (zh) * | 2020-12-14 | 2024-07-02 | 中国人民银行清算总中心 | 基于Redis的消息异步消费方法及装置 |
CN113254223A (zh) * | 2021-07-14 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种系统重启后的资源分配方法、系统及相关组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015106687A1 (en) | Method and apparatus for processing computational task | |
KR101971389B1 (ko) | 연합 기반 메모리 관리 | |
KR102150774B1 (ko) | 단말기 애플리케이션을 로딩하기 위한 방법 및 장치 | |
CA2849565C (en) | Method, apparatus, and system for scheduling processor core in multiprocessor core system | |
CN105245372A (zh) | 一种基于缓存和异步机制的加载网络资源的优化方法 | |
US20140237476A1 (en) | Centralized task scheduling | |
KR20160110406A (ko) | 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법 | |
KR20180069807A (ko) | 동기화를 리매핑하는 것에 의한 태스크 서브그래프들의 가속화 | |
WO2016115000A1 (en) | Hybrid scheduler and power manager | |
JP2012522320A5 (zh) | ||
CN104750543A (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
TW200617680A (en) | Establishing command order in an out of order DMA command queue | |
CN103873587B (zh) | 一种基于云平台实现调度的方法及装置 | |
JP2017530453A5 (zh) | ||
CN106897299B (zh) | 一种数据库访问方法及装置 | |
US9417924B2 (en) | Scheduling in job execution | |
CN103677959B (zh) | 一种基于组播的虚拟机集群迁移方法及系统 | |
JP2016126426A (ja) | マルチコアシステム、マルチコアプロセッサ、並列処理方法及び並列処理制御プログラム | |
CN105528203A (zh) | Cpu使用控制系统及方法 | |
CN105653610A (zh) | 一种快速显示大容量数据信息的方法 | |
CN105183854A (zh) | 一种数据库卸载数据的调度方法 | |
US9766940B2 (en) | Enabling dynamic job configuration in mapreduce | |
CN104104969B (zh) | 一种视频截取方法及装置 | |
CN103793270A (zh) | 终端应用程序的迁移方法、装置及终端 | |
CN107689979B (zh) | 一种下载请求处理方法和处理设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160113 |