Java多线程与线程安全实践-基于Http协议的断点续传

Java多线程与线程安全实践-基于Http协议的断点续传

ID:46049138

大小:58.13 KB

页数:5页

时间:2019-11-20

Java多线程与线程安全实践-基于Http协议的断点续传_第1页
Java多线程与线程安全实践-基于Http协议的断点续传_第2页
Java多线程与线程安全实践-基于Http协议的断点续传_第3页
Java多线程与线程安全实践-基于Http协议的断点续传_第4页
Java多线程与线程安全实践-基于Http协议的断点续传_第5页
资源描述:

《Java多线程与线程安全实践-基于Http协议的断点续传》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java多线程与线程安全实践-基于Http协议的断点续传摘耍现实世界中的很多过程都具有多条线索同时动作的特性。Java语言的一大特性就是内置对多线程的支持。多线程是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同吋处理多个任务的功能强大的应用程序。一些同时运行的线程需要共享数据,因此每个线程就必须要考虑其它与它一起共享数据的线程的状态与行为,这就是线程安全的问题。为了对Java多线程与线程安全机制进行研究与实践,特此设计一个基于Http协议的支持多线程断点续传的下载程序。此下载程序由下载任务模块、设置模块以及系统帮助模块组成。

2、通过ApacheJakartaCommons下的子项目HttpClient包对Http协议进行支持,从而下载服务器端的资源。程序提供多线程断点续传功能,在完成下载过程屮使用多线程技术可以较大幅度地提高下载的速度。关键词:多线程;线程安全;断点续传需求分析3.1用户需求分析随着Internet的发展,进入信息时代后快速获得网络共享资源成为很简单的事情,人们对互联网也有了很大的依赖性。人们甚至希望只轻松点击鼠标就可以得到自己想要的东西。比如,针对一些专业的论坛提供了很多相关资料以方便人们阅读或了解;还有更多的人希望能过下载到他们喜欢听得音乐、好看的图片、喜欢的电影等等。也可以看出人们在上网时

3、再也不单是打开浏览器来浏览网页,越来越多的人们开始使用下载软件来获取资源。同时人们也更希望使用更新更快的下载软件。由于用户下载需求的增大,也要求下载软件能够迅速完成对资源的下载。多线程程序设计可以很好的解决程序并发的问题。最恰当的比喻就是用户会感到CPU似乎同时出现在两个地方,在下载软件中应用多线程技术可以理解为将一个下载任务分成若干份来完成,其中的并发控制将使下载的效率人大提高。由于下载资源是一个过程,当中用到的吋间可能会很长。那么在很长的这段时间中很有可能会出现很多的意外情况使下载中断或是停止,比如电源意外被切断、网络中断、或是操作系统故障导致系统重新启动。这些原因都会导致下载的中断

4、,但是当用户重新下载资源时发现原来下载的数据已经消失你还是要回头再来。断点续传就是用来解决这样的问题的,它的任务是在下载任务停止吋,记录当前下载的信息并且利用网络协议中的一些重定向机制继续完成下载任务而不必从头再来。随着使用下载工具的时间的增长,用户下载的资源越来越多,因此在下载列表中的项口也越来越多,越来越混乱,因此为了便于管理和用户使用方便,用户迫切希望下载工具具有下载文件分类的功能。在下载任务的管理这一块,用户不仅希望下载工具具有下载一个-个资源的功能,而且具有批量下载有些相似的或有关联的资源的功能。还有些特殊情况下,用户在下载任务开始后由于种种原因希望放弃资源的下载,这就要求下载

5、工具具有删除任务的功能了。为了对下载任务进行掌控,用户往往具有设置下载任务的线程数,文件下载网址,文件下载存储目录和在下载过程中对下载任务的状态进行监控等功能需求。鉴于某些软件使用初学者甚至某些电脑初学者的实际情况,他们往往需要系统有一个格外的帮助文档,使他们能够更快、更好地学会使用断点续传下载软件,提高效率。3.2业务流分析多线程断点续传的业务流程:首先由用户进入软件系统,在新建任务中填写必耍的下载资源的相关属性,比如相关资源下载地址URL、存储路径、以及下载线程数等。由软件发送HTTP消息请求,然后服务器根据请求返回响应消息。确认无误就可以启动线程开始下载资源。将缓存中存储的数据最终

6、存储到目的存储路径。此外,系统为用户提供了一些对任务的基本操作,比如,停止、继续、删除等。4.系统设计4.1系统设计要点随着用户下载需求的增大,用户下载的资源越来越大,下载的过程也就越来越久,这就要求下载软件能够迅速完成对资源的下载,为了提高下载效率的问题,所以本系统采用多线程的方式來实现下载速率的提高。多线程的优点之一是所有线程都可以访问相同的全局变量和共享资源,它提供了程序设计的简捷性与便利性,提高了对信息处理的并发度,但也带来了数据的讹误或线程得不到某一资源而被饿死(即死锁)的可能性。为了避免这些现象的产生,线程在使用共享资源或对象前必须获得一个约束访问同步对象的权力,也就是通过同

7、步的机制来控制这种权力的使用,这就是线程的安全问题。Http协议是互联网中一个非常重要而且应用十分频繁的协议,所以本系统的设计是基于Http协议的。长期以来,断点续传始终是困扰网虫们的一大难题,眼看着已经下载到99%的软件,却由于突然掉线而前功尽弃的那种沮丧恐怕人人都经历过,于是本系统采用断点续传的方式来设计。本系统设计的基本目标就是利用编写一个时下流行的基于Http协议的多线程断点续传的程序來研究Java多线程与线程安全的机制。4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。