freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于http的多線程下載器畢業(yè)論文(編輯修改稿)

2024-08-15 20:16 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 S 日志中顯示。 5xx服務(wù)器錯(cuò)誤 服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求。 500內(nèi)部服務(wù)器錯(cuò)誤。 504網(wǎng)關(guān)超時(shí)。 505HTTP 版本不受支持。 JAVA Java 簡(jiǎn)介 Java 是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計(jì)語(yǔ)言和 Java 平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。 Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科 學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下, Java 更具備了顯著優(yōu)勢(shì)和廣闊前景。 Swing 簡(jiǎn)介 Swing 是一個(gè)用于開發(fā) Java 應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包( AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。 Swing開發(fā)人員只用很少的代碼就可以利用 Swing 豐富、靈活的功能和模塊化組件來(lái)創(chuàng)建優(yōu)雅的用戶界面。 Swing 組件是在 AWT 組件基礎(chǔ)上發(fā)展而來(lái)的輕量級(jí)組件,與 AWT 相比不但改湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 8 進(jìn)了用戶界面,而且所需的系統(tǒng)資源更少; Swing 是純 Java 組件,使得應(yīng)用程序在不同的平臺(tái)上運(yùn)行時(shí)具有相同外觀和相同的行為。 Swing 組件的類體系結(jié)構(gòu)如圖 所示: 圖 Swing 組件體系結(jié)構(gòu) 圖 創(chuàng)建圖形界面的步驟: 導(dǎo)入 Swing 包 選擇界面風(fēng)格 設(shè)置頂層容器 設(shè)置按鈕和標(biāo)簽 將組件放到容器上 為組件增加邊框 處理事件 、 輔助技術(shù)支持 線程和多線程 線程的基本概念 線程( thread)是 進(jìn)程 中某個(gè)單一順序的控制流。也被稱為輕量進(jìn)程( lightweight processes)。計(jì)算機(jī)科學(xué)術(shù)語(yǔ),指運(yùn)行中的程序的調(diào)度單位。 線程,有時(shí)被稱為輕量進(jìn)程 (Lightweight Process, LWP),是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線程由線程 ID,當(dāng)前指令指針 (PC),寄存器集合和堆棧湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 9 組成。另外,線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程 ,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。每一個(gè)程序都至少有一個(gè)線程,那就是程序本身。 線程是程序中一個(gè)單一的順序控制流程。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。 多線程的優(yōu)點(diǎn) CPU 是以時(shí)間片的方式為進(jìn)程分配 CPU 處理時(shí)間的,當(dāng)一個(gè)進(jìn)程以同步的方式去完成幾件事情時(shí),此進(jìn)程必須完成了第一件事情以后再做第二件事,如此按順序地向 CPU 請(qǐng)求完成要做的事情。在此單線程的工作模式下,如果把CPU 看作是一共有 100 個(gè)時(shí)間片的話, CPU 可能一直都只是花了其中的 10 個(gè)時(shí)間片來(lái)處理當(dāng)前進(jìn)程所要做的事情,只是用到了 CPU 的 10%的時(shí)間片,而其他時(shí)間都白白浪費(fèi)了,當(dāng)然,實(shí)際上 CPU 的工作模式還是做完一件事以后再去做另一件事,只是 CPU 的處理速度非常快,很快就處理完成所請(qǐng)求的情事。 采用多線程可以很明顯的提高 CPU 的利用率。如當(dāng)前進(jìn)程要完成三件事情 3,那么 CPU 會(huì)分別用 10%的時(shí)間來(lái)同時(shí)處理這 3 件事情,從而讓 CPU的使用率達(dá)到了 30%,大大地 提高了 CPU 的利用率。多線程在處理一些特殊的場(chǎng)合其優(yōu)勢(shì)更加明顯(如下載器)。 Java 線程的實(shí)現(xiàn) Java 線程的實(shí)現(xiàn)一般有兩種方式:第一種是繼承 Thread 類;第二種是實(shí)現(xiàn)Runnable 接口。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 10 第三章 系統(tǒng)分析與設(shè)計(jì) 功能需求 由于豐富的網(wǎng)絡(luò)資源,現(xiàn)在的用戶下載需求量也越來(lái)越大,同時(shí)對(duì)下載軟件處理資源速度的要求也越來(lái)越高。而多線程程序設(shè)計(jì)可以很好的解決程序并發(fā)的問(wèn)題。在下載軟件中應(yīng)用多線程技術(shù)可以理解為將一個(gè)下載任務(wù)分成若干份來(lái)完成,其中的并發(fā)控制將使下載的效率大大提高。 由于下載資源的時(shí)間長(zhǎng)短不一,可能很短也可能比較長(zhǎng)。如果在一段很長(zhǎng)的下載時(shí)間段中出現(xiàn)了意外情況,比如電源意外被切斷、網(wǎng)絡(luò)中斷、或是操作系統(tǒng)故障導(dǎo)致系統(tǒng)重新啟動(dòng)。這些原因都會(huì)導(dǎo)致下載的 中斷,但是當(dāng)用戶重新下載資源時(shí)發(fā)現(xiàn)原來(lái)下載的數(shù)據(jù)已經(jīng)消失你還是要回頭再來(lái)。斷點(diǎn)續(xù)傳就很好的解決了這樣的問(wèn)題,它的任務(wù)是在下載任務(wù)停止時(shí),記錄當(dāng)前下載的信息并且利用網(wǎng)絡(luò)協(xié)議中的一些重定向機(jī)制繼續(xù)完成下載任務(wù)而不必從頭再來(lái)。 簡(jiǎn)單來(lái)說(shuō)可以將需求整理為如下: 可視化界面; 支持多線程下載; 支持?jǐn)帱c(diǎn)續(xù)傳; 系統(tǒng)功能模塊的 劃分 系統(tǒng)主要包含如下幾個(gè)類: MainFrame: 負(fù)責(zé)定義可視化界面,定義主界面的監(jiān)聽事件。 DownTableModel: 繼承 AbstractTableModel 類,此類對(duì)象用于處理表格。 GlobalData: 用于保存全局?jǐn)?shù)據(jù)。 NewDownload: 創(chuàng)建新建下載的頁(yè)面,定義新建下載頁(yè)面的監(jiān)聽事件。 Download: 做下載前的準(zhǔn)備,包括連接資源,實(shí)現(xiàn)多線程,分配每個(gè)線程的下載量。 DownloadThread: 實(shí)現(xiàn)下載,并進(jìn)行數(shù)據(jù)流的 I/O 操作。 LoadProperty: 保存當(dāng)界面關(guān)閉時(shí)的下載信息和讀取界面打開時(shí)的下載信息。 其中每個(gè)類可以看做是一個(gè)功能模塊。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 11 系統(tǒng)流程圖 系統(tǒng)整體運(yùn)行流程圖:如圖 所示: 開 始查 看 是 否 有 未完 成 任 務(wù)監(jiān) 聽 主 界 面 事 件否導(dǎo) 入 未 完 成 的 下 載任 務(wù)是新 建 下 載 新 建 下 載 任 務(wù)開 始 下 載 開 始 下 載 任 務(wù)否是是暫 停 下 載否暫 停 下 載 任 務(wù)是退 出是繼 續(xù) 監(jiān) 聽 頁(yè) 面 事 件否保 存 頁(yè) 面 未 完 成 下載 信 息退 出輸 入 U R LU R L 是 否 可用否選 擇 存 儲(chǔ) 位 置是選 擇 線 程確 定 下 載創(chuàng) 建 下 載 實(shí) 體 進(jìn) 行下 載是否刪 除 下 載 刪 除 下 載 任 務(wù)否否創(chuàng) 建 下 載 線 程停 止 下 載 線 程刪 除 下 載 實(shí) 體 , 關(guān)閉 下 載 線 程圖 系統(tǒng)流程圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 12 系統(tǒng)結(jié)構(gòu)用例圖 根據(jù)系統(tǒng)需求分析,系統(tǒng)需實(shí)現(xiàn)新建下載、暫停下載、開始下載、刪除下載四個(gè)基本功能。當(dāng)系統(tǒng)在存在未完成任務(wù)退出時(shí)需保存下載任務(wù)的斷點(diǎn)信息。同時(shí)啟動(dòng)程序時(shí)應(yīng)導(dǎo)入未完成任務(wù)的下載信息。系統(tǒng)結(jié)構(gòu)用例圖如圖 所示: 圖 系統(tǒng)結(jié)構(gòu)用例 圖湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 13 第四章 系統(tǒng)實(shí)現(xiàn) 開發(fā)環(huán)境構(gòu)建 開發(fā)應(yīng)用程序所需要的環(huán)境: : Windows 或 Linux 系統(tǒng)。 : Eclipse 。 : JDK。 本應(yīng)用使用的開發(fā)平臺(tái)為 Win7,所使用的開發(fā)環(huán)境為 ,所用到的開發(fā)工具包有 。 JDK 和 Eclipse 的安裝 第一步:安裝 Java 安裝完成 jdk 以后最重要的是配置環(huán)境變量: 在 ―我的電腦 ‖上點(diǎn)右鍵 —―屬性 ‖—―高級(jí) ‖— ―環(huán)境變量 (N)‖; 在 “系統(tǒng)變量 ”中,設(shè)置 3 項(xiàng)屬性, JAVA_HOME,PATH,CLASSPATH(大小寫無(wú)所謂 ),若已存在則點(diǎn)擊 “編輯 ”,不存在則點(diǎn)擊 “新建 ”。JAVA_HOME 為java 的安裝路徑,如: C:\Program Files\Java\。Path 中加入“ %JAVA_HOME%/bin?!珻lasspath中加入“ .。% JAVA_HOME%\lib。‖ 最后在 DOS 下進(jìn)行測(cè)試:輸入 java 、 javac、 java –version 等命令,分別輸出如圖 ,圖 ,圖 則表示配置成功。 圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 圖 圖 第二步:安裝 Eclipse 從網(wǎng)站 Eclipse 版本,解壓至相應(yīng)的位置。 Eclipse 在使用時(shí)會(huì)自動(dòng)檢測(cè) Java 運(yùn)行時(shí)環(huán)境。 MainFrame 模塊設(shè)計(jì) MainFrame 模塊結(jié)構(gòu) MainFrame 模塊是界面和按鈕監(jiān)聽事件的集合,用戶每按一個(gè)按鈕系統(tǒng)就會(huì)執(zhí)行不同的事件。如下是 MainFrame 模塊的結(jié)構(gòu)圖 : 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 15 下 載 器 界 面新 建 下 載 按 鈕開 始 下 載 按 鈕暫 停 下 載 按 鈕 刪 除 下 載 按 鈕觸 發(fā) 新 建 下 載 事 件 觸 發(fā) 開 始 下 載 事 件觸 發(fā) 暫 停 下 載 事件觸 發(fā) 刪 除 下 載 事 件 圖 MainFrame 模塊結(jié)構(gòu)圖 主界面設(shè)計(jì) MainFrame 可視化界面主要定義了如下一些組建: JToolBar :用于裝載(容納)按鈕; JButton :定義新建下載,開始下載,暫停下載等按鈕; JTable:以表格形式顯示下載條目; JScrollPane :定義帶滾動(dòng)條的文本區(qū)域,用于裝載 JTable; JProgressBar:定義一個(gè)下載進(jìn)度條。 主界面運(yùn)行圖如圖 所示: 圖 主界面 當(dāng)鼠標(biāo)右鍵單擊 JTable 表格中某一選擇的下載項(xiàng),需要彈出一個(gè)包括三個(gè)菜單項(xiàng)(暫停、開始、刪除)的菜單。如圖 所示: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 圖 菜單項(xiàng) 定義主界面關(guān)鍵代碼: private void initFrame(){ (900,600)。//1280*800 (this)。//居中顯示 (EXIT_ON_CLOSE)。 c=()。 } private void initComponent(){ horizon_bar=new JToolBar()。 //創(chuàng)建各個(gè)按鈕并設(shè)置按鈕的名字 new_btn=new JButton(新建下載 )。 start_btn= new JButton(開始下載 )。 pause_btn = new JButton(暫停下載 )。 del_btn = new JButton(刪除下載 )。 //定義 table table=new JTable()。 =new DownTableModel(table)。 ()。 ().getColumn(4).setCellRenderer(new DownCellRenderer())。 //設(shè)置進(jìn)度條 scrollPane = new JScrollPane(table)。 } private void addComponent(){ //綁定組件 (new_btn)。 (start_btn)。 (pause_btn)。 (del_btn)。 ()。 (horizon_bar,)。 (scrollPane,)。 } 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 17 主界面實(shí)現(xiàn)了下載進(jìn)度條,我們需要設(shè)定進(jìn)度條外觀的各種屬性,關(guān)鍵代碼如下: public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) { //將進(jìn)度條中不斷變化的值強(qiáng)制轉(zhuǎn)換為 int型 (((())))。 (100)。//設(shè)置進(jìn)度條的最大值為 100 (0)。// 設(shè)置進(jìn)度條的最小值為 0 ()。 // 設(shè)置進(jìn)度條的顏色為藍(lán)色 //該屬性確定進(jìn)度條是否應(yīng)該呈現(xiàn)進(jìn)度字符串 (true)。 //設(shè)置進(jìn)度條水平放置 ()。 return this。 } MainFrame 組件監(jiān)聽事件 MainFrame 中定義了幾個(gè)按鈕,點(diǎn)擊每個(gè)按鈕都會(huì)產(chǎn)生相應(yīng)的動(dòng)作,這就用到了我們的監(jiān)聽事件。 點(diǎn)擊新建下載按鈕:下載器要彈出新建下載框; 點(diǎn)擊暫停下載按鈕:將選中的下載條目暫停; 點(diǎn)擊開始下載按鈕:將選中的下載條目重新開始下載; 點(diǎn)擊刪除下載按鈕:將選中的下載條目刪除,放入
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1