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

正文內(nèi)容

java多線程與線程安全實踐基于ttp協(xié)議的斷點續(xù)傳—免費畢業(yè)設(shè)計論文-文庫吧資料

2024-12-07 11:28本頁面
  

【正文】 gArea(Composite parent) { Composite posite = (Composite)(parent)。 下載任務(wù)具體實現(xiàn) 下載任務(wù)管理主要是對下載任務(wù)進行操作,下載任務(wù)中主要包括新建下載任務(wù)、批量下載任務(wù)、退出任務(wù)。批量下載的原理和下載任務(wù)的原理和相似,只是同時進行多個下載任務(wù)。下載軟件會根據(jù)新建任務(wù)欄的信息完成下載任務(wù)并且進行監(jiān)控。 下載任務(wù)順序圖如圖 4 所示: 圖 4下載任務(wù)順序圖 第 13 頁 共 25 頁 下載任務(wù)管理主要的是對下載任務(wù)進行的一系列操作,包括新建下載任務(wù)、批量下載任務(wù)、刪除任務(wù)、清除文件的一些操作。確認無誤就可以啟動線程開始下載資源。下載任務(wù)類圖如下: 第 12 頁 共 25 頁 圖 3 下載任務(wù)類圖 下載任務(wù)順序圖 下載任務(wù)根據(jù)用戶需求新建任務(wù),在新建任務(wù)中填寫必要的下載資源的相關(guān)屬性,比如相關(guān)資源下載地址 URL、存儲路徑、以及下載線程數(shù)等。由支持 HTTP 協(xié)議下載( HTTPTask)繼承 Task 的抽象方法并實現(xiàn)通過 HTTP 協(xié)議下載。 (true)。 (COLUMNWIDTHS[i])。 i++) { TableColumn col = new TableColumn(tasksTable, )。 第 11 頁 共 25 頁 for (int i = 0, n = 。 } protected Control createContents(Composite parent) { SashForm pane = new SashForm(parent, )。 public Table getTasksTable() { return tasksTable。 設(shè)計 Table、 List 與 SashForm 的主要代碼: private Table tasksTable。在 Table 與 List 的設(shè)計中主要采用分割條( SashForm)對 Table 和 List 進行分隔。 標準按鈕欄和菜單欄的添加方法和菜單欄很相似,只需要添加按鈕后同樣添加用戶動作即可。 (exitAction)。 (deleteTaskAction)。 (newTaskAction)。F))。 protected MenuManager createMenuManager() { MenuManager menuManager = new MenuManager()。 aboutAction = new AboutAction()。 batchTaskAction = new BatchTaskAction()。 public class GUIDownloader extends ApplicationWindow { public static GUIDownloader APP。 setToolTipText(退出 )。 setToolTipText(刪除下載任務(wù) )。 setToolTipText(新建批量任務(wù) )。 setToolTipText(新建任務(wù) )。 添加用戶動作。首先創(chuàng)建用戶動作,包括下載 工具 功能 模塊 下 載 文 件 分類 下 載 任 務(wù) 設(shè) 置 任 務(wù) 系 統(tǒng) 幫 助 新 建 下 載 任務(wù) 批量 完成 下載 任務(wù) 刪 除 任 務(wù) 連 接 配 置 監(jiān) 視 配 置 監(jiān) 視 下 載 信息 自動 添加 剪貼 板功 能 第 9 頁 共 25 頁 新建下載任務(wù)動作( newTaskAction)、新建批量下載任務(wù)動作( batchTaskAction)、刪除任務(wù)動作( deleteTaskAction)、幫助動作( aboutAction)和退出動作( exitAction),這些都是 action。在這里每一個 action 都可以用來響應一個用戶的動作,比如打印文件、打開文檔或是顯示對話框。在下載過程中上邊提到的相關(guān)信息都會顯示在列表框和文本框中,用戶可以方便地監(jiān)視到下載文件的狀況。在此對圖形界面的實現(xiàn)進行詳細介紹。 另外系統(tǒng)還支持將資源下載 URL 地址自動添加到剪貼板中,這樣用戶只需 第 8 頁 共 25 頁 要點擊地址即可開始下載,而不是需要手動粘貼、復制 URL 地址到指定位置。 在設(shè)置任務(wù)的管理模塊主要有兩個子模塊組成:在新建(批量)下載任務(wù)的時候進行任務(wù)的連接方面的配置模塊以及在現(xiàn)在過程中對下載任務(wù)的狀態(tài)進行監(jiān)視的模塊。本系統(tǒng)的功能結(jié)構(gòu)圖如圖示: 其中下載文件的分類模塊主要是通過在新建下載任務(wù)時候設(shè)置下載文件的存儲目錄甚至新建一個存儲目錄的方式來實現(xiàn)。 本系統(tǒng)設(shè)計的基本目標就是利用編寫一個時下流行的基于 Http 協(xié)議的多線程斷點續(xù)傳的程序來研究 Java 多線程與線程安全的機制。 Http 協(xié)議是互聯(lián)網(wǎng)中一個非常重要而且應用十分頻繁的協(xié)議,所以本系統(tǒng)的設(shè)計是基于 Http 協(xié)議的。多線程的優(yōu)點之一是所有線程都可以訪問相同的全局變量和共享資源,它提供了程序設(shè)計的簡捷性與便利性,提高了對信息處理的并發(fā)度,但也帶來了數(shù)據(jù)的訛誤或線程得不到某一資源而被餓死(即死鎖)的可能性。 此外, 系統(tǒng)為用戶提供了一些對任務(wù)的基本操作,比如,停止、繼續(xù)、刪 除等。確認無誤就可以啟動線程開始下載資源。 業(yè)務(wù)流分析 多線程斷點續(xù)傳的 業(yè)務(wù)流程: 首先由用戶進入軟件系統(tǒng),在新建任務(wù)中填寫必要的下載資源的相關(guān)屬性,比如相關(guān)資源下載地址 URL、存儲路徑、以及下 第 7 頁 共 25 頁 載線程數(shù)等。 為了對下載任務(wù)進行掌控,用戶往往具有設(shè)置下載任務(wù)的線程數(shù),文件下載網(wǎng)址,文件下載存儲目錄和在下載過程中對下載任務(wù)的狀態(tài)進行監(jiān)控等功能需求。 在下載任務(wù)的管理這一塊,用戶不僅希望下載工具具有下載一個一個資源的功能,而且具有批量下載有些相似的或有關(guān)聯(lián)的資源的功能。斷點續(xù)傳就是用來解決這樣的問題的,它的任務(wù)是在下載任務(wù)停止時,記錄當前下載的信息并且利用網(wǎng)絡(luò)協(xié)議中的一些重定向機制繼續(xù)完成下載任務(wù)而不必從頭再來。那么在很長的這段時間中很有可能會出現(xiàn)很多的意外情況使下載中斷或是停止,比如電源意外被切斷、網(wǎng)絡(luò)中斷、或是操作系統(tǒng)故障導致系統(tǒng)重新啟動。最恰當?shù)谋扔骶褪怯脩魰械紺PU 似乎同時出現(xiàn)在兩個地方,在下載軟件中應用多線程技術(shù)可以理解為將一個下載任務(wù)分成若干份來完成, 其中的并發(fā)控制將使下載的效率大大提高。 由于用戶下載需求的增大,也要求下載軟件能夠迅速完成對資源的下載。 也可以看出人們在上網(wǎng)時再也不單是打開瀏覽器來瀏覽網(wǎng)頁,越來越多的人們開始使用下載軟件來獲取資源。人們甚至希望只輕松點擊鼠標就可以得到自己想要的 東西。 知道了以上原理,就可以進行斷點續(xù)傳的編程了。 q=.2 仔細看一下就會發(fā)現(xiàn)多了一行 RANGE: bytes=2020200, 這一行的意思就是告訴服務(wù)器 這個文件從 2020200 字節(jié) 開始傳,前面的字節(jié)不用傳了 。 GET / HTTP/ UserAgent: NetFox RANGE: bytes=2020200 Accept: text/html, image/gif, image/jpeg, *。所以在客戶端瀏覽器傳給 Web 服務(wù)器的時候要多加一條信息 從哪里開始。 MSIE 。 打個比方,瀏覽器請求服務(wù)器上的一個文 件 時,所發(fā)出的請求如下: 假設(shè)服務(wù)器域名為 ,文件名為 。 HTTP 定義 Web 客戶 (即瀏覽器 )如何從 Web 服務(wù)器請求 Web 頁面,以及服務(wù)器如何把 Web 頁面?zhèn)魉徒o客戶。運行在不同端系統(tǒng)上的客戶程序和服務(wù)器程序通過交換HTTP 消息彼此交流。 Web 的應用層協(xié)議 HTTP 是 Web 的核心。瀏覽器就是與Web 服務(wù)器產(chǎn)生連接的客戶端程序,它的端口為 TCP 的 80 端口。 Http 協(xié)議簡介 HTTP 是 Web 協(xié)議集中的重要協(xié)議,它是從客戶機 /服務(wù)器模型發(fā)展起來的。 ( 2)當 我們 從另一個被同步的方法中激活被同步的方法時要小心,最好是清楚地定義每個線程的任務(wù),并考慮使用什么數(shù)據(jù)和什么時候使用。它不是資源不夠引起的,而是由線程的調(diào)度引起的。例如:有 10 張車票供 2 個顧客預定,而又要求 2 個顧客盡可能多地預定 10 張車票,這 10 張車票作為共享資源,可能導致 1 張票預定給 2 個顧客的情況,針對這種情況,設(shè)計時應采用正確的同步機制。線程可直接訪問共享數(shù)據(jù) , 既有相互之間高效 通信的優(yōu)點,也有線程間任意相互干擾的弊端。如果其他線程企圖訪問一個處于不可用狀態(tài)的對象,該對象將不能正確響應從而產(chǎn)生無法預料的結(jié)果,如何避免這種情況發(fā)生是線程安全性的核心問題。 Java 中的線程安全 當對一個復雜對象進行某種操作時,從操作開始到操作結(jié)束,被操作的對象往往會經(jīng)歷若干非法的中間狀態(tài)。 ( 3) CPU 所處理的數(shù)據(jù),傳送給 Thread 類。 Java 內(nèi)在支持多線程,其線程由 3 部分組成: ( 1)虛擬 CPU,封裝在 Java. lang. Thread 類中。例如 HotJava 瀏覽 器就是一個多線程的應用實例。線程是從一個完整應用程序分出的單獨的處理步驟,是程序內(nèi)部的一個順序控制流。 2 相關(guān)基礎(chǔ)知識以及開發(fā)平臺 第 3 頁 共 25 頁 JAVA 中的多線程與線程安全 Java 中的多線程 Java 不僅是一門語言,它已成為一門技術(shù),例如 Java 芯片技術(shù)、 Java 編譯技術(shù)、基于 Java 的信息家電聯(lián)網(wǎng)技術(shù)( Jini)等,并以它的平臺獨立性、健壯性、Java 虛擬機技術(shù)等特點受到廣大編程者青睞。 操作可行性 下載程序的具備友好的用戶 界面,而且操作簡單易于被用戶接收,使用此下載程序十分方便,因為軟件的操作思路比較清晰,而且用戶實際操作的內(nèi)容較少,所以用戶只需要熟練操作計算機即可。 由于我們可以通過 private 關(guān)鍵字來保證數(shù)據(jù)對象只能被方法訪問,所以我們只需針對方法提出一套機制,這套機制就是 synchronized 關(guān)鍵字,它包括兩種用法: synchronized 方法和 synchronized 塊。 由于同一進程的多個線程共享同一片存儲空間,在帶來方便的同時,也帶來了訪問沖突這個嚴重的問題。 Thread 類是負責向其它類提供線程支持的最主要的類,要使用一個類具有線程功能,在 Java中只要簡單地從 Thread類派生一個子類就可以了 。 Java 中實現(xiàn)多線 程的類有兩種方法 : 類,用它覆蓋Thread 類的 run 方法。多線程編程的含義是將程序任務(wù)分成幾個并行的子任務(wù)。使用Java 作為開發(fā)工具主要是因為 Java 是目前比較流行而且非常成功的編程語言。 系統(tǒng)的可行性分析主要包括技術(shù)上的可行性 和 操作上的可行性。要達到這個目的,必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標是否現(xiàn)實,系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。如讓自己的軟件支持自動在線升級,或者在軟件中自動下載新的數(shù)據(jù)進行數(shù)據(jù)更新,這都是很有用、而且很實用的功能。 但是可以明顯提高網(wǎng)絡(luò)文件的下載速度。由于是多線程進行斷點續(xù)傳,還要考慮記錄多個斷點位置,且記錄斷點位置時也要考慮同步互斥等問題。這樣,在下載時可以把文件分成若干部分,每一部分創(chuàng)建一個下載線程進行下載。在 “ 網(wǎng)絡(luò)螞蟻 ” 軟件流行開后,許多下載軟件也 都紛紛效仿,是否具有 “ 多線程下載 ” 技術(shù)、甚至能支持多少個下載線程都成了人們評測下載軟件的要素。如果系統(tǒng)只有一個 CPU,那么真正的 “同時 ”是不可能的,但是由于CPU 的速度非常快,用戶感覺不到其中的區(qū)別,因此我們也不用關(guān)心它,只需要設(shè)想各個線程是同時執(zhí)行即可。 Java 快速地把控制從一個線程切換到另一個線程。雖然執(zhí)行線程給人一種幾個事件同時發(fā)生的感覺,但這只是一種錯覺,因為 我們的計算機在任何給定的時刻只能執(zhí)行那些線程中的一個。 Java 語言的一大特性就是內(nèi)置對多線程的支持。例如,我們可以一邊看電視,一邊活動胳膊,如果不容許這樣做,我們會感覺很難受。 Broken/Resume 目 錄 論文總頁數(shù): 25 頁 1 引言 ............................................................................................................................. 1 課題的研究背景與意義 ........................................................................................... 1 課題的研究背景 .........................................................
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1