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

正文內(nèi)容

基于java的多線程下載工具的實現(xiàn)計算機(jī)(編輯修改稿)

2025-01-12 09:50 本頁面
 

【文章內(nèi)容簡介】 P2P 網(wǎng)絡(luò)中,服務(wù) 器的身份已經(jīng)不是網(wǎng)絡(luò)的中心,但它扔控制整個網(wǎng)絡(luò)的工作,當(dāng)服務(wù)器出現(xiàn)故障是會導(dǎo)致整個網(wǎng)絡(luò)的癱瘓。而且,目前 P2P 文件共享程序的大量使用,消耗了網(wǎng)絡(luò)上的大量帶寬,加之用戶一些并非重要文件的隨意下載,以及大量視頻、音頻等較大文件的下載,導(dǎo)致帶寬的浪費更為嚴(yán)重,致使網(wǎng)絡(luò)運營商也沒有從中盈利。除此之外,由于 P2P 網(wǎng)絡(luò)的不安全性,擁有大量用 戶的網(wǎng)絡(luò)很可能成為黑客或不法分子圖利的對象,這些缺點導(dǎo)致 P2P 極大的不安全性。 P2P 下載方式的工作原理用圖表示,可見下圖 所示。 6 流媒體下載 流媒體下載技術(shù)具有單一性,它專門用于網(wǎng)絡(luò)多媒體信息的傳播和處理。它與上述兩種下載方式不同的特點是它可以一邊播放一邊下載。它的使用需要一定的緩存。 因為一個實時音視頻源或存儲的音視頻文件在傳輸中被分解為許多數(shù)據(jù)包 ,而網(wǎng)絡(luò)是動態(tài)變化的,各個包選擇的路由可能不同,所以到達(dá)客戶端的時延也不同,可能先發(fā)的數(shù)據(jù)包會后到。所以就要使用緩存來消除時延和抖動,以保證數(shù)據(jù)包順序正確,從而使媒體數(shù)據(jù)能夠連續(xù)輸出。 其工作原理是:首先它的實現(xiàn)需要合適的傳輸協(xié)議。它不使用 TCP 協(xié)議,因為 TCP協(xié)議需要很多開銷,它不適合傳輸實時數(shù)據(jù)。 在流式傳輸實現(xiàn)中,一般采用 HTTP/TCP來傳輸控制信息,而用實時傳輸協(xié)議 /用戶數(shù)據(jù)報協(xié) 議 RIP/UDP 來傳輸實時數(shù)據(jù)。 當(dāng)用戶使用流媒體技術(shù)想要獲得自己做需要的信息時,用戶和服務(wù)器 之間就會相互交換信息,使用的協(xié)議是 HTTP/TCP,那么就會尋找到所需要的數(shù)據(jù)信息;瀏覽器使用音視頻客戶程序,使用 HTTP 從服務(wù)器檢索相關(guān)參數(shù)對音視頻客戶程序初始化,這些參數(shù)可能包括目錄、音視頻數(shù)據(jù)的編碼類型與 音視頻檢索相關(guān)的服務(wù)器地址信息等;音視頻客戶程序及音視頻服務(wù)器運行實時流協(xié)議,以交換音視頻傳輸所需的控制信息,實時流協(xié)議 提供執(zhí)行播放、快進(jìn)、快倒、暫停及錄制等命令的方法;音視頻服務(wù)器使用 RTP/UDP協(xié)議將音視頻數(shù)據(jù)傳輸給音視頻客戶程序,一旦音視頻數(shù)據(jù)抵達(dá)客戶端,音視頻客戶程序即可播放輸出。流媒體技術(shù)應(yīng)用最廣泛的是在視頻點播、遠(yuǎn)程教育等方面。 由流媒體的工作原理了解到,這種下載方式一方面可以緩解網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān);另一方面可以降低對客戶端緩存的要求。并且流媒體可以實現(xiàn)一邊下載一邊播放的特點,與傳統(tǒng)的下載工具先下載、后播放的方式相比,可以大大的縮短用戶的等待時間,給用戶帶來極大的方便。而且,一般傳輸?shù)奈募容^小,因而傳輸過程中往往 比較快速,讀取信息也不會浪費大量的時間,可以很容易的獲得,這樣可以節(jié)省不少花費。再者該技術(shù)與傳統(tǒng)的方式不同,在輸送數(shù)據(jù)過程是不間斷的,所以它能夠很容易的追蹤與用戶有關(guān)系的信息。這一大功能在教育行業(yè)發(fā)揮了很大的作用。流媒體與傳統(tǒng)的下載工具相比還服務(wù)器 PC1 PC2 PC3 圖 P2P 下載技術(shù)工作原理 7 有一個更顯著的優(yōu)勢就是,我們生活中一般的電影和電視都是是單向的,內(nèi)容也是不變的(電視的內(nèi)容可以選擇)。當(dāng)人們觀看時只能被動的接受,不管是什么節(jié)目,不能快進(jìn)、快退隨意選擇,這樣會使瀏覽者沒有選擇權(quán),只能跟隨媒體的選擇,有時會有一些用戶不想看的節(jié)目,但是用戶又必須觀看。而流 媒體與傳統(tǒng)的媒體技術(shù)不同,它的資源要比傳統(tǒng)的多,而且是開放性的,內(nèi)容也很豐富,用戶掌握了主動權(quán),可以根據(jù)自己的意愿指揮、控制它,讓流媒體完全為自己主宰,服務(wù)于自身。 雖然流媒體技術(shù)有很多優(yōu)點,但是這種技術(shù)是在傳統(tǒng)下載技術(shù)的基礎(chǔ)上,新發(fā)展起來的媒體技術(shù),所以到目前為止它的標(biāo)準(zhǔn)不一,由此其在發(fā)展過程中可以不拘一格,以多種形式發(fā)展,從而促使其快速發(fā)展,但這也使得流媒體的發(fā)展受到障礙。目前,有關(guān)方面也意識到這個問題,研究人員正在擬定一個適合流媒體自身發(fā)展的標(biāo)準(zhǔn)。所以流媒體的發(fā)展在管理、商業(yè)運營等方面還存在一些技術(shù)問 題有待解決。 流媒體下載技術(shù)的工作原理如圖 所示 。 多線程下載 多線程是 Java 編程中的一部分,它是實現(xiàn)并發(fā)的一種重要手段,一個進(jìn)程可以通過運行多個線程來并發(fā)地執(zhí)行多項任務(wù)。多線程下載指的是:線程通俗的說就相當(dāng)于是通道,就像水流需要渠道一樣,線程是信息傳輸是所需要的通道。一個線程就相當(dāng)于傳輸一個文件所需要的一個通道,同樣的意思多線程就是在同時下載多個資源時必須有多個通道,就像水流從不同的渠道流出一樣,下載的資源信息也是從不同的通道傳輸。當(dāng)有好多個用戶同時申請從一臺服務(wù)器上下 載數(shù)據(jù)的時候,這些用戶之間會共享該服務(wù)器的帶寬,當(dāng)級別相同的時候,這些用戶之間會平均獲得下載進(jìn)程。那么,線程越多,得到的資源就會越多,從而在下載資源的時候,其速度相對也會加快。 多線程下載技術(shù)的優(yōu)點在于,它不同于單線程,單線程下載時只能發(fā)送一個請求,所以只能下載一個資源。而多線程恰恰相反,它可以同時發(fā)送多個請求,每個請求都會下載資源,這樣可以大大提高下載的速度,而且能夠充分使用主機(jī)資源和帶寬?;诙嗑€程下載技術(shù)的優(yōu)點,本文通過分析該技術(shù)的可行性和設(shè)計的總體過程,并實現(xiàn)了該下載技術(shù)。 定位 Web 瀏覽器 Web 服務(wù)器 A/V播放器 A/V服務(wù)器 元文件 HTTP/TCP RTSP/TCP 圖 流媒體下載技術(shù)工作原理 8 在本課程設(shè)計中,多線程技 術(shù)用在新建新任務(wù)和下載線程上,在系統(tǒng)中我們可以開始多個下載線程下載同一個網(wǎng)絡(luò)上的資源而互不干擾。從宏觀上看是并行的,但對于微觀上來說,它卻是并行運行的,線程的運行在操作系統(tǒng)的調(diào)度下,各自得到一定的時間片,當(dāng)某一線程獲取到時間片時,它就進(jìn)入運行狀態(tài)。各個線程按照一定的協(xié)議分別獲取時間片。 9 3 相關(guān)概念介紹 Java 多線程 Java 語言是 Sun 公司開發(fā)出來的一種面向?qū)ο筮M(jìn)行設(shè)計的編程語言。是一種具有現(xiàn)代性的計算機(jī)語言,隨著技術(shù)的不斷更新, Java 已被廣泛接受并推動了 Web 的迅速發(fā)展 。 Java 的一大目標(biāo)就是使程序開發(fā)者可以交互程序,對一個問題可以分解成多個任務(wù)來執(zhí)行。而多線程可以使編寫的程序同時執(zhí)行多個任務(wù)。 多線程指的是每個正在系統(tǒng)上運行的 程序 都是一個 進(jìn)程 。每個 進(jìn)程 包含一到多個 線程。 進(jìn)程 也可能是整個 程序 或者是部分程序的動態(tài)執(zhí)行。線程是一組 指令 的集合,或者是 程序 的特殊段, 它可以在程序里獨立執(zhí)行。也可以把它理解為 代碼 運行的上下文。所以線程基本上是輕量級的 進(jìn)程 ,它負(fù)責(zé)在單個 程序 里執(zhí)行多 任務(wù) 。通常由 操作系統(tǒng) 負(fù)責(zé)多個線程的調(diào)度和執(zhí)行。 線程是 程序 中一個單一的順序控制流程 .在單個程序中同時運行多個線程完成不同的工作 ,稱為多線程 . 多線程為該程序的基石,通過開啟多個線程對資源進(jìn)行請求和下載,使下載速度得到質(zhì)的飛躍,也是該項目的關(guān)鍵。 線程有兩組突出的特點,以下來介紹該組概念: 第一, 線程的共性和個性。 線程的共性。同一個進(jìn)程中,線程都有共性:多個線程將共享同一個進(jìn)程虛擬空間。線程共享的環(huán)境包括:進(jìn)程代碼段、進(jìn)程的公有數(shù)據(jù)(利用這些共享的數(shù)據(jù),線程很容易的實現(xiàn)相互之間的通訊)、線程打開的文件描述符、信號的處理器、進(jìn)程的當(dāng)前目錄和進(jìn)程用戶 ID 與進(jìn)程組 ID。 線程的個性。線程的個性是實現(xiàn)并發(fā)性的必要條件。每個線程都有自己的線程 ID,這個 ID 在本進(jìn)程中是唯一的。一個線程切換到另一個線程上時,必須將原有的線程的寄存器集合的狀態(tài)保存,以便將來該進(jìn)程在被重新切換到時能得以恢復(fù)。線程必須擁有自己的函數(shù) 堆棧,使得函數(shù)調(diào)用可以正常執(zhí)行,不受其他線程的影響。不同線程應(yīng)該擁有自己的錯誤返回碼變量。 第二,線程的并發(fā)性和并行性。 線程的并發(fā)性。進(jìn)程內(nèi)至少同時有兩個線程進(jìn)行時才存在并發(fā)性問題。在單處理器上執(zhí)行的多線程的進(jìn)程內(nèi)部,處理器可以在線程之間按照一定策略切換運行,從而實現(xiàn)了同時執(zhí)行。 線程的并行性。至少同時需要有兩個線程在執(zhí)行時才存在并行性。在共享存儲多處理器上執(zhí)行的同一個多線程進(jìn)程,在同一時刻內(nèi),有多條指 令在多個處理機(jī)上同時執(zhí)行。 線程的創(chuàng)建和退出及其函數(shù)調(diào)用 1. 線程的創(chuàng)建 以下函數(shù)是線程的創(chuàng) 建函數(shù),要創(chuàng)建新的線程,必須調(diào)用該函數(shù)。 int pthtead_create(pthtead_t *tid, const pthtead_attr_t *attr, void *(*func)(void *),void 10 *arg): 第一個參數(shù)為指向線程標(biāo)識符的指針,第二個參數(shù)用來設(shè)置線程屬性,第三個參數(shù)是線程運行函數(shù)的起始地址,最后一個參數(shù)是運行函數(shù)的參數(shù)。 ( 1)等待線程的結(jié)束函數(shù): int pthread_join(pthread_ttid,void**status): 第一個參數(shù)為 被等待的線程標(biāo)識符,第二個參數(shù)為一個用戶定義的指針,它可以用來存儲被等待線程的返回值。 ( 2)終止線程函數(shù): void pthread_exit(void*value_ptr): 唯一的參數(shù)是函數(shù)的 返回代碼。 HTTP 協(xié)議 HTTP 協(xié)議即超文本傳輸協(xié)議,是面向事務(wù)的應(yīng)用層協(xié)議,使用 TCP 連接進(jìn)行可靠傳輸,它是萬維網(wǎng)能夠可靠交換文件(如文本、聲音、圖像等)的重要基礎(chǔ)。瀏覽器和服務(wù)器之間想要通信時,每個網(wǎng)點都有一個服務(wù)器進(jìn)程,用以監(jiān)聽 TCP 端口 80。一旦瀏覽器發(fā)出建立連接請求,如果服務(wù)器監(jiān)聽到該請求, 就建立了 TCP 連接,瀏覽器就像服務(wù)器發(fā)出請求,服務(wù)器就會返回所請求的信息作為響應(yīng)。最后,將 TCP 連接釋放。在整個過程當(dāng)中,所遵循的規(guī)則就是 HTTP 協(xié)議。它使用了面向連接的 TCP 作為傳輸曾協(xié)議,能夠保證數(shù)據(jù)的可靠傳輸。但是要說明的是,在客戶端瀏覽器和服務(wù)器建立連接時不一定必須使用 TCP 三次握手來實現(xiàn), HTTP 只是假定它的傳輸層協(xié)議是可靠的,因 此 HTTP 協(xié)議的下層協(xié)議只要是可靠的傳輸協(xié)議都可以被 HTTP 協(xié)議使用。 雖然這種完成一次便斷開連接的形式,看起來增加了下次通信連接的網(wǎng)絡(luò)開銷,但是,站在服務(wù)器的角度來看, 這種方式可以減少服務(wù)器的持續(xù)連接的開銷,當(dāng)有多個客戶端連接該服務(wù)器時,這種保持連接的消耗會變得非常巨大,以至于服務(wù)器不能再接收更多客戶端的連接,減少了服務(wù)器的利用率。 URL 和 HTTP URL URL 即統(tǒng)一資源定位符,是表示從 Inter 上得到的資源位置和訪問這些資源的方法。它給資源(如文件、圖像、視頻等)的位置提供了一種抽象的識別方法,這樣就可以給資源定位,通過這種定位,系統(tǒng)就可以對它們實施一些操作,如查找。存儲等。 URL 一般由四部分組成,它的表示方法是: 協(xié)議 ://主機(jī) :端口 /路徑 因為萬維網(wǎng)的訪問要使用 HTTP 協(xié)議,那么能夠標(biāo)識這個地址的唯一東西就是 HTTP 的URL。此時的表示方法就是: 主機(jī) :端口 /路徑 例如當(dāng)訪問太原理工大學(xué)的網(wǎng)頁時,其 URL 就是: 11 4 多線程下載工具需求分析 用戶需求分析 信息化時代的今天,網(wǎng)絡(luò)成為人們生活、工作的必須品,人們獲取資料的方式也是通過網(wǎng)絡(luò)來得到。人們對網(wǎng)絡(luò)需求增加 的同時,對其要求也逐漸嚴(yán)格。他們都希望以最快的速度獲取信息,甚至不想多等一分鐘,有的人可能想著只要輕觸鍵盤就能獲得所需要的信息。例如,人們在網(wǎng)上希望找到自己想要下載的視頻、音樂等。人們現(xiàn)在不單是使用瀏覽器關(guān)注網(wǎng)頁上的東西,很多人們喜歡用一些軟件下載自己想要的資料,而且對下載工具的速度和安全性要求越來越高。而多線程下載技術(shù)能夠在同一時間運行多個線程,也就是說它可以同時下載多個資源,通俗的說就是可以將一個下載工作劃分為幾個小任務(wù)共同完成,這樣可以在很大程度上提高資源的下載效率。 傳統(tǒng)的下載工具很難解決這樣一個問 題,就是如果下載的文件較大,或者所需的時間較長時,那么此時對計算機(jī)和網(wǎng)絡(luò)的要求就很高。也就是在此過程中,計算機(jī)不能出任何問題,否則下載就會失敗。例如:有時計算機(jī)會斷電、或者斷網(wǎng)、或者造成死機(jī)、藍(lán)屏等,這時必須重啟計算機(jī)。那么,要是傳統(tǒng)下載工具的話,之前下載的東西就會丟失,還要重新開始下載,這就會浪費用戶大量的時間。而多線程下載,有一個功能就是斷點續(xù)傳,意思是當(dāng)有意外終止下載時,下載任務(wù)不會因此丟失,開始重新下載時,計算機(jī)會從停止的位置繼續(xù)下載,這樣可以減少不必要的麻煩,節(jié)省了大量的時間,所以多線程下載受到很 多用戶的喜愛。 見下表 1所示,整合了該系統(tǒng)的需求分析表。 表 多線程下載需求分析表 序號 功能名稱 功能描述 1 多線程 一個下載任務(wù)同時由多個線程同時下載 2 支持 HTTP 協(xié)議 能夠下載 HTTP 類型的資源數(shù)據(jù) 3 斷點續(xù)傳 當(dāng)斷電或關(guān)閉下載任務(wù)后,下次能夠繼續(xù)下載 4 圖形界面 輸入 URL 地址,保存地址和文件名,線程數(shù) 可行性分析 可行性分析的目的就是對所作的系統(tǒng)進(jìn)行分析,確定該系統(tǒng)是否可行。就是開發(fā)人員盡可能用較小的人力、物力、財力達(dá)到所期望的目的。其中基本的可行性分 析包括技術(shù)可行性、經(jīng)濟(jì)可行性和社會可行性。下邊分別從這三方面探討多線程下載技術(shù)實現(xiàn)的可行性。 12 技術(shù)可行性 多線程是 Java 語言的中很重要的一部分知識,而 Java 語言是目前使用最多的語言
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1