基于缓存技术的多线程下载软件的改进,本文是多线程相关大学毕业论文范文跟多线程和缓存技术和改进研究类函授毕业论文范文.
多线程论文参考文献:
摘 要:本文通过对WEB浏览器访问网络资源特性的研究,将浏览器缓存技术应用到下载软件系统,提出一种新的基于图片资源缓存的下载软件设计方法,可实现多线程、断点续传、限速等功能,改进了传统软件下载图片时的不足.测试结果表明,该设计具备良好的稳定性和可行性,图片资源下载速度较传统软件有了较大提升.
关键词:多线程;断点续传;下载;图片缓存
中图分类号:TP301文献标识码:A
TheImprovementResearchofMulti-ThreadedDownload
SoftwareBasedontheCacheTechnology
CHENHang
(TianheCollege,GuangdongPolytechnicNormalUniversity,Guangzhou510540,China)
Abstract:Basedonthecharacteristicsofwebbrowserstoaccessnetworkresources,thestudyappliesthebrowsercachetechnologyintothedownloadsoftwareandputorwardanewdownloadsoftwaredesignmethodbasedonimageresourcecache,whichcanachievethefunctionsofmulti-threadtranerring,broken-pointcontinuingly-tranerringanddownloadraterestriction,etc.,andimprovetheimagedownloadthroughthetraditionalsoftware.Thetestresultsshowthatthedesignhasgoodstabilityandfeasibility,andtheimagedownloadrateisgreatlyincreased.
Keywords:multi-thread;broken-pointcontinuingly-tranerring;download;imagecache
1引言(Introduction)
互联网的飞速发展促进了网络资源爆炸式成长.用户通常使用浏览器获取网络资源信息,而通过下载软件下载资源则成为用户最普遍的应用[1],主流的下载软件国内有迅雷、快车,国外有Orbit、TuoTu和电驴等.
研究浏览器访问网络资源的特点发现,为了提高网页访问速度,通常它会采用累积式加速的方法,即将曾经访问过的网页内容,如图片、cookie等存放到本地的缓存区域,当有访问请求时,浏览器将首先搜索该目录.如果内容已存在,则直接从缓存中读取内容,以此达到提高访问速度的目的.本课题基于IE浏览器缓存机制,将该技术应用到下载软件系统的设计中,提出了一种基于图片资源缓存的下载软件设计方法,改进了传统软件下载图片资源的不足.
2主要技术原理分析(Maintechnicalprinciple
analysis)
2.1线程与线程同步
本系统采用了线程技术,与进程相比,线程的主要特点有:轻型实体,独立调度,可并发执行,共享进程资源[2].由于线程很“轻”,故线程的切换非常迅速而且开销小,并发执行和共享资源方面优于进程.
线程同步的主要任务是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程能有效地共享资源和相互合作[3],从而使程序的执行具有可再现性.
2.2图片缓存下载机制
基于浏览器缓存机制,用户下载网页图片资源时,可以先查找缓存区域.如果目标图片已经存在,则从缓存中下载;如果不存在,则从远程服务器下载.本文所述方法采用基于IE浏览器缓存机制实现,具体步骤在第五部分详细阐述.
2.3下载限速原理
本文提到的限速是指下载客户端的限速,而并非服务器端的限速.由于网络资源下载会占用较大带宽,必须对下载流量进行限制.本设计采用线程休眠来减少流量请求,从而实现流量限制.
3多线程下载软件系统设计(Multi-threaded
downloadsoftwaresystemdesign)
3.1系统整体框架
系统基于.NET平台开发,采用面向对象的方法与双层架构并行的设计理念.双层结构包括表示层与逻辑层.逻辑层提供一切逻辑上的处理,如下载、切割文件等;表示层是用户的功能界面.在分层架构的思想指导下,逻辑层与表示层具有较小的关联性,易于后期的维护和修改.
3.2系统核心类交互关系及功能
本系统采用面向对象的编程思想,所有核心的代码都由类构成.系统下载类主要有下载模型DownloadBase、基于FTP下载的类FTPDownload、基于HTTP下载的类HttpDownload、基于P2P下载的类P2PDownload.其中DownloadBase为其他三个类的父类,继承关系如图1所示.
Fig.1UMLdiagramsofcoreclasses
4功能实现(Functionimplementation)
4.1基于HTTP与FTP多线程断点续传核心技术实现
本文以FTP为例阐述断点续传实现过程.当程序运行时,根据URL启动多条线程连接FTP服务器,出于避开防火墙的考虑,连接方式采用消极模式.当客户端连接至FTP服务器时,发送RETR命令以获取FTP上的文件.此过程并不是将文件数据一次性传输给客户端,而是一步步传输.一般一次传输数据的大小即为缓存下载的大小,并且每条线程负责不同的数据段,每个数据段的大小除最后一条线程外都相等.获取到数据后,客户端再将数据从内存中多线程并发写入到硬盘.
4.2断点续传具体实现方法
断点续传指的是在用户暂停下载时,系统应保存已经下载时的数据,并记录暂停下载时数据写到的位置[4];当用户重新启动下载时,系统能自动下载剩余尚未完成的数据.断点续传主要用于下载较大文件.
4.3下载限速算法
由于多线程技术可能会占用大量的网络带宽,影响用户其他的网络活动[5],因此要对下载流量进行限制.本设计使用线程休眠技术实现流量限制[6],其流程图如图2所示.
Fig.2Flowrestrictionflowchart
具体实现如下:
假设使用N条线程下载远程文件F,每条线程所使用的下载缓存大小设为S字节,并且获取S字节所需实际时间为T毫秒,限速目标值为V´,则线程具体休眠时间的算法如下:
步骤1:求出理想的线程休眠时间T´=S/V´,比较T与T´的大小.若T>等于T´,则表示获取S字节的缓存所需时间大于理想休眠时间.换言之,当前下载速度慢于限速目标值V´,无须进行限速操作;反之,如果T<T´,则表示当前下载速度大于目标限速值V´,此时转入第2步.
步骤2:由于T<T´,则表示当前下载速度大于限速目标值V´,必须进行限速.由于在获取S字节时已经花去T毫秒,则下载S字节时总共所需休眠时间应为TX=T´-T.
步骤3:由于是使用多线程下载,即N条线程并发下载,因此,每条线程下载休眠时间应为TN=Tx/N毫秒.
4.4IE图片缓存下载的实现
本设计中的图片缓存下载技术使用基于IE浏览器缓存机制来实现,其流程图如图3所示.由于采用了图片缓存下载技术,下载速度有了极大的提高,最好的情况下将达到硬盘的读写速度,如22M/S.
Fig.3Imagecachedownloadtechnologyflowchart
4.5网页图片识别筛选功能
传统下载软件在下载网页图片时,往往是将所有图片下载,而实际上用户只需要下载感兴趣的图片.基于此,本设计增加了网页图片识别筛选功能模型.该模型将图片的长宽大小范围设定在300×300—1600×1600,以此作为用户选择下载的条件.基于此筛选模型下载到符合要求的图片准确率比较高,一般可高达88%,其分析详见5.3节.
5运行分析与测试(Applicationanalysisandtest)
5.1多线程断点续传下载的测试
本节对多线程断点续传功能进行测试,测试资源是在互联网任意选取的6个远程资源文件,所得测试数据见表1.从表1中可知6个目标资源均成功下载至本地,且文件完整,说明本设计的多线程断点续传下载技术已经实现成功.
5.2图片缓存下载技术性能分析
本文4.4节介绍了IE图片缓存下载技术的实现方法,本节就对该技术的性能与迅雷软件进行对比分析.本实验的数据源是从互联网上任意选取20个网页,实验中对比了两种下载软件的性能,结果见表2.在全部缓存到本地的情况下,缓存下载技术下载速度较传统下载技术有了很大的改进.
Fig.4Downloadtimecomparisonbetweenthetwomethods
从图4中可明显地看到,相同的图片资源下载,运用了缓存技术的下载软件下载耗时很小.对比二者,下载差距如图5所示.
Fig.5Downloadtimemultipliercomparisonbetween
thetwomethods
从中可以看到,当下载网页中26张图片的时候,耗时是图片缓存下载技术的3500多倍,即使在差距最小的情况下,耗时也是后者的200多倍.由实验分析可知,图片缓存下载技术无论是在下载速度上,还是在占用本地资源上,较传统下载软件有较大优势.
5.3网页图片识别筛选准确率分析
本实验使用了表2的20个网页进行识别筛选测试,其结果如图6所示.
Fig.6Downloadrecognitionfunction
由图可知,20个网页中有15个识别率高达100%,有4个识别率超过50%,只有1个识别率为0.从所选用的20个网页来看,本图片筛选模型平均准确率达到了88%.
结合此识别模型与图片缓存下载技术,可形成一个完整的下载方案:一方面提高了识别用户目标图片的准确度,另一方面下载的速度有着质的飞跃.
6结论(Conclusion)
本设计运用了下载限速、断点续传、多线程、缓存下载等技术,取得了良好的实现效果,最大限度利用了带宽,提高了下载效率.针对目前主流下载软件存在的不足,提出基于浏览器缓存特性实现的图片缓存下载方法,显著改善了图片资源下载速度.
参考文献(References)
[1]周学威,闫鑫,赵榉云,等.基于SOCKET的多线程下载工具的开发[J].电子测试,2011(08):104-106.
[2]杨代庆,王志苹,王星,等.一种断点续传的多线程新闻组抓取方法及存储结构[J].现代图书情报技术,2011(02):29-33.
[3]眭俊华,刘慧娜,王建鑫,等.多核多线程技术综述[J].计算机应用,2016(06):239-242.
[4]王莉敏,梁正和,段全锋.基于HTML5大文件断点续传的实现方案[J].计算机与现代化,2016(03):91-95.
[5]王枫,罗家融.Linux下多线程Socket通讯的研究与应用[J].计算机工程与应用,2004(16):106-109.
作者简介:
谌颃(1980-),男,硕士,高级工程师.研究领域:网络信息系统,图像识别,数据挖掘,云计算,个性化推荐技术.
此文结束语,上文是一篇关于经典多线程专业范文可作为多线程和缓存技术和改进研究方面的大学硕士与本科毕业论文多线程论文开题报告范文和职称论文论文写作参考文献.
侧冲孔技术在海钓线辘产品模具的应用
【摘要】通过对海钓线辘产品的冲压加工工艺分析,本文着重介绍圆周侧冲孔模具的结构设计、工作原理与加工制造特点 根据在运动器材企业的实践证明,该模具的结构比较合理,工艺与制造不太复杂,冲压生产操作方便,生.
新时期计算机软件开发技术的应用与趋势
摘要在互联网高速发展的当下,计算机软件被用在了各行各业,也掀起了一阵创新的浪潮 在时代大环境下,信息化与智能化的水平越来越高,人们曾经设想的计算机功能,都在逐步实现 人们对于物质与精神的需求越来越高,.
高职软件技术专业人才培养方案建设
周海珍(湖南软件职业学院 湖南 湘潭 411201)摘 要在信息技术不断发展的今天,软件技术专业人才呈现出了紧缺的市场趋势,但是从现下的高职软件技术专业人才培养分析还存在着很多的问题,为此在今后的教学.
基于航海技术专业教学资源库的线上线下混合教学模式探究
摘要基于教育部航海技术专业教学资源库和现代信息化教学方式,研究构建将课堂教学与互联网优势结合起来,即线上线下混合教学模式并实际应用于课程教学,可供航海类高职院校在校生及在职船员培训学习使用,亦可用于航.