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

正文內(nèi)容

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

2024-08-15 20:16 本頁面
 

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