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

正文內(nèi)容

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

2024-12-01 16:20本頁(yè)面
  

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