資源描述:
《2830.多線程下載工具的設計與實現(xiàn) 論文》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、簡單多線程下載工具的設計與實現(xiàn)【摘要】隨著互聯(lián)網(wǎng)應用范圍不斷擴展,網(wǎng)絡包含的信息資源日益增多。互聯(lián)網(wǎng)用戶可以通過網(wǎng)絡下載所需的數(shù)據(jù)資源并保存到本地磁盤當中,因此相應的基于網(wǎng)絡的下載工具應運而生。隨著基于網(wǎng)絡的多線程下載技術的出現(xiàn),如今的下載工具已徹底擺脫了帶寬瓶頸的束縛并且向著更為人性化的方向發(fā)展。本設計采用Java和多線程技術設計并實現(xiàn)了一個簡單多線程下載工具。該工具可對指定的任務進行下載,同時支持斷點續(xù)傳功能。【關鍵字】java;多線程;斷點續(xù)傳;Swing本文源碼索取,請聯(lián)系qq:目錄1.引言31.1開發(fā)背景31.2開發(fā)意義32.系統(tǒng)分析32.1設計概述32.1.1實現(xiàn)目標3
2、2.1.2開發(fā)環(huán)境32.2.開發(fā)相關技術簡介32.2.1Java語言簡介32.2.2多線程技術簡介42.2.3HTTP1.1協(xié)議42.2.4斷點續(xù)傳的技術42.3可行性分析42.3.1技術可行性分析42.3.2經(jīng)濟可行性分析52.3.3操作可行性分析53.概要設計53.1系統(tǒng)結構圖53.2功能流程圖54.詳細設計64.1獲取網(wǎng)絡資源64.1.1功能說明64.1.2設計說明64.1.3核心代碼74.2線程任務分配84.2.1功能說明84.2.2設計說明84.2.3設計流程84.3創(chuàng)建下載任務94.4任務下載104.4.1功能說明104.4.2設計說明104.4.3核心流程114.5事
3、件監(jiān)聽器設計124.5.1功能說明124.5.2設計說明124.6下載控制器設計124.6.1功能說明134.6.2設計說明134.6.3功能流程144.7顯示控制器設計154.7.1功能說明154.7.2設計說明154.8斷點記錄文件設計174.8.1功能說明174.8.2設計說明174.8.3保存斷點線程流程圖184.9文件操作184.9.1功能說明184.9.2設計說明184.9.3文件操作流程194.10GUI界面設計194.10.1功能說明204.10.2設計說明205.設計問題總結215.1斷點設置問題215.2下載速度統(tǒng)計問題226.參考文獻資料221.引言1.1開發(fā)
4、背景隨著互聯(lián)網(wǎng)應用范圍不斷擴展,網(wǎng)絡包含的信息資源日益增多,互聯(lián)網(wǎng)用戶可以通過網(wǎng)絡下載所需的數(shù)據(jù)資源保存在本地磁盤當中,因此相應的基于網(wǎng)絡的下載工具應運而生。對于一個網(wǎng)絡下載工具,有兩個問題一直阻礙著下載技術的發(fā)展:速度和下載后的管理。但是伴隨著基于網(wǎng)絡的多線程下載技術的出現(xiàn),如今的下載工具徹底擺脫了這兩個問題的束縛并且向著更為人性化的方面發(fā)展下去。1.2開發(fā)意義本系統(tǒng)是開發(fā)一個簡單的多線程下載工具,基本實現(xiàn)單資源的多線程任務下載,同時實現(xiàn)斷點續(xù)傳的功能。相對于目前主流下載工具的實現(xiàn)技術,本設計是不能相比的。實現(xiàn)這么一個下載具最大的意義是探索多線程下載的基本原理,綜合運用所學的知識
5、,提高自己的動手能力,及查閱資料繼續(xù)學習的能力。2.系統(tǒng)分析2.1設計概述對于這么一個多線程下載工具的設計,首先就是要設定好實現(xiàn)的目標,確定開發(fā)的環(huán)境。有個合理的設計目標使得在設計過程中不茫然,思路更清楚。而一個好的開發(fā)環(huán)境對提高開發(fā)的效率起著很重要的作用。2.1.1實現(xiàn)目標實現(xiàn)一個實用的多任務,多線程下載工具。具備以下功能:1、實現(xiàn)一個簡潔的易操作的GUI界面2、實現(xiàn)新建下載任務的功能3、下載過程實現(xiàn)多任務,多線程的功能4、實現(xiàn)任務暫停,及恢復下載的功能5、實現(xiàn)停止任務功能2.1.2開發(fā)環(huán)境Eclipse,windowsxp,jre,jdk2.2.開發(fā)相關技術簡介本節(jié)將對本設計中
6、用到的一些主要技術進行簡單的介紹。2.2.1Java語言簡介Java是一種簡單的、面向對象的、分布式的、解釋型的、健壯安全的、結構中立的、可移植的、性能優(yōu)異、多線程的語言,自1995年SUN推出JAVA語言后,全世界的目光都被這個神奇的語言所吸引。由于Java所具有的以上那些特性,所以我選用JAVA做為本設計的開發(fā)語言。2.2.2多線程技術簡介線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執(zhí)行。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里執(zhí)行多任務。通常由操作系統(tǒng)負責多個線程的調(diào)度和執(zhí)行。在本設計中,多線程的技術用在新建新任務和下
7、載線程上,在系統(tǒng)中我們可以開始多個下載線程下載同一個網(wǎng)絡上的資源而互不干擾。它從宏觀上看是并行運行的,但對于微觀上來說,它是卻是串行運行的,線程的運行在操作系統(tǒng)的調(diào)度下,各自得到一定的時間片,當某一線程獲取到時間片時,它就進入運行狀態(tài)。各個線程按照一定的協(xié)議分別獲取時間片。2.2.3HTTP1.1協(xié)議HTTP1.1(HypertextTransferProtocolVertion1.1)超文本傳輸協(xié)議-版本1.1。它是用來在Internet上傳送超文本的傳送協(xié)議。它是