版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于JAVA的多線程下載工具的實現(xiàn)摘 要隨著現(xiàn)代科技的迅猛開展,以信息化為根底的計算機技術已成為全球信息通信的雛形,計算機的開展逐漸進入一個全新的開展階段,成為人們現(xiàn)在眾所周知的熱門話題。計算機技術的開展,使得網(wǎng)絡成為人們獲取信息的重要途徑之一。人們獲取數(shù)據(jù),進行通信的方式其實就是將數(shù)據(jù)從一方傳送到另一方。但是在傳送的過程中,通常會由于一些突發(fā)狀況,如網(wǎng)絡接觸不良導致掉線、電腦死機、藍屏、或者電腦的一些其他原因,使得數(shù)據(jù)傳輸失敗。尤其適當用戶看到已經(jīng)傳到快要完成的時候,突然中斷,導致其不得不重新下載,這給用戶帶來了很大的不便。多線程下載可以實現(xiàn)多個任務同步下載,大大的提高了下在速度,為用戶節(jié)省
2、了時間。因此,研究JAVA多線程下載對人們方便使用下載工具下載內容具有重要意義的。關鍵字:JAVA;多線程下載;數(shù)據(jù)傳輸Based on the Realization of the Java Multi-thread Download ToolsAbstractWith the rapid development of modern science and technology, represented by the Internet also obtains the rapid development of computer network. Therefore, prompting th
3、e development of computer has entered a new stage, which become a hot topic that is known to all and everyone has concerned. The development of computer technology makes the network become one of the most important ways of accessing to information. To get the data, the way people communicate is to t
4、ransfer data from one party to another party. But in the process of transfer, usually due to some unexpected situation, such as network poor contact lead t o drop, computer crashes, blue screen, or some other reasons, the computer makes a failure in data transmission. Particularly appropriate users
5、have seen it almost finished, s suddenly break, it has to download again, which gives the user a great deal of inconvenience. Multi-threaded download can implement multiple task synchronous download, greatly improves the speed, which saves time for the users. Therefore, be convenient for people to s
6、tudy JAVA multi-thread download in using download tools to download content is of great significance.Key words: Java; Multi-threaded download; data transmission目 錄 TOC o 1-3 h z u HYPERLINK l _Toc12199 摘 要 PAGEREF _Toc12199 I HYPERLINK l _Toc3116 Abstract PAGEREF _Toc3116 II HYPERLINK l _Toc27690 1
7、緒論 PAGEREF _Toc27690 1 HYPERLINK l _Toc4000 1.1 課題背景 PAGEREF _Toc4000 1 HYPERLINK l _Toc28843 1.2 選題意義 PAGEREF _Toc28843 1 HYPERLINK l _Toc25072 1.2.1 理論意義 PAGEREF _Toc25072 1 HYPERLINK l _Toc11486 1.2.2 現(xiàn)實意義 PAGEREF _Toc11486 2 HYPERLINK l _Toc7180 1.3 現(xiàn)狀分析 PAGEREF _Toc7180 2 HYPERLINK l _Toc6666 1
8、.4 本文結構 PAGEREF _Toc6666 3 HYPERLINK l _Toc19242 2 常用下載技術現(xiàn)狀 PAGEREF _Toc19242 4 HYPERLINK l _Toc19823 2.1 Web下載 PAGEREF _Toc19823 4 HYPERLINK l _Toc1590 2.2 P2P下載 PAGEREF _Toc1590 5 HYPERLINK l _Toc27619 2.3 流媒體下載 PAGEREF _Toc27619 6 HYPERLINK l _Toc7123 2.4 多線程下載 PAGEREF _Toc7123 7 HYPERLINK l _Toc
9、25416 3 相關概念介紹 PAGEREF _Toc25416 9 HYPERLINK l _Toc22666 3.1 Java多線程 PAGEREF _Toc22666 9 HYPERLINK l _Toc24981 3.2 線程的創(chuàng)立和退出及其函數(shù)調用 PAGEREF _Toc24981 9 HYPERLINK l _Toc26862 3.3 協(xié)議 PAGEREF _Toc26862 10 HYPERLINK l _Toc5288 3.4 URL和 URL PAGEREF _Toc5288 10 HYPERLINK l _Toc4248 4 多線程下載工具需求分析 PAGEREF _To
10、c4248 11 HYPERLINK l _Toc4640 4.1 用戶需求分析 PAGEREF _Toc4640 11 HYPERLINK l _Toc5486 4.2 可行性分析 PAGEREF _Toc5486 11 HYPERLINK l _Toc31749 4.2.1 技術可行性 PAGEREF _Toc31749 12 HYPERLINK l _Toc7719 4.2.2 經(jīng)濟可行性 PAGEREF _Toc7719 12 HYPERLINK l _Toc32702 4.2.3 操作可行性 PAGEREF _Toc32702 12 HYPERLINK l _Toc26100 4.3
11、 業(yè)務流分析 PAGEREF _Toc26100 12 HYPERLINK l _Toc10640 5 多線程下載工具的設計 PAGEREF _Toc10640 13 HYPERLINK l _Toc30328 5.1 整體設計 PAGEREF _Toc30328 13 HYPERLINK l _Toc6458 5.2 模塊劃分 PAGEREF _Toc6458 13 HYPERLINK l _Toc25204 5.3 數(shù)據(jù)下載流程 PAGEREF _Toc25204 14 HYPERLINK l _Toc18550 5.4 關鍵技術 PAGEREF _Toc18550 15 HYPERLIN
12、K l _Toc3790 5.5 根本操作 PAGEREF _Toc3790 15 HYPERLINK l _Toc23133 6 多線程下載工具的實現(xiàn) PAGEREF _Toc23133 17 HYPERLINK l _Toc17630 6.1 下載任務模塊 PAGEREF _Toc17630 17 HYPERLINK l _Toc25341 6.2 線程啟動模塊 PAGEREF _Toc25341 18 HYPERLINK l _Toc24620 6.3 用戶界面模塊 PAGEREF _Toc24620 19 HYPERLINK l _Toc20650 6.4 下載工具的實現(xiàn) PAGERE
13、F _Toc20650 19 HYPERLINK l _Toc15102 7 系統(tǒng)測試 PAGEREF _Toc15102 22 HYPERLINK l _Toc11471 7.1 系統(tǒng)測試環(huán)境 PAGEREF _Toc11471 22 HYPERLINK l _Toc22625 7.1.1 網(wǎng)絡環(huán)境 PAGEREF _Toc22625 22 HYPERLINK l _Toc22603 7.1.2 硬件環(huán)境 PAGEREF _Toc22603 23 HYPERLINK l _Toc32673 7.2 軟硬件配置 PAGEREF _Toc32673 23 HYPERLINK l _Toc1832
14、5 7.2.1 測試程序的啟動 PAGEREF _Toc18325 23 HYPERLINK l _Toc23618 7.2.2 測試新建下載任務 PAGEREF _Toc23618 24 HYPERLINK l _Toc9546 7.2.3 下載任務測試 PAGEREF _Toc9546 25 HYPERLINK l _Toc3833 結論 PAGEREF _Toc3833 26 HYPERLINK l _Toc13768 參考文獻 PAGEREF _Toc13768 27 HYPERLINK l _Toc16183 致謝 PAGEREF _Toc16183 28 HYPERLINK l _
15、Toc27908 外文原文 PAGEREF _Toc27908 29 HYPERLINK l _Toc31298 中文翻譯 PAGEREF _Toc31298 391 緒論1.1 課題背景21世紀的主要特征是數(shù)字化、網(wǎng)絡化和信息化,它是以網(wǎng)絡為核心的信息化時代。計算機對社會人類社會生活的各個方面并且對經(jīng)濟的開展發(fā)揮著無可替代的作用。計算機可以使使用者快速傳輸文件資料,以及使用戶在網(wǎng)上搜索并下載個人所需的各種資料,包括圖片、音樂、小說和視頻等。很多人認為現(xiàn)在已經(jīng)是Internet的時代,因為計算機在不斷的以各種形式改變著人們的生活和工作,他給各個國家的開展帶來了巨大的好處,并加快了全球信息化的進
16、程。計算機的快速開展,使得人們對數(shù)據(jù)的獲得要求也越來越高。在計算機開展初期,用戶獲得數(shù)據(jù)的方式也很簡單,就是以讀取的形式,這種方式下載資料,有很多的弊端,不僅下載速度緩慢,而且當計算機由于某種原因:斷網(wǎng)、斷電或電腦故障時,就會導致下載失敗,想要重新下載,就必須從頭開始再下載一次。而且,如果是下載較大型的文件,其傳輸速度緩慢,給用戶帶來太多的不便。除此之外,最初的下載方式不支持一次性下載多個文件,只能下載一個。所以對于計算機不斷開展的今天,研究出一種下載快速又相對穩(wěn)定的下載工具是至關重要的?,F(xiàn)如今,計算機網(wǎng)絡以驚人的速度開展壯大,逐漸走進尋常百姓家中,已經(jīng)成為人們生活、學習和工作的必須品。而隨著
17、計算機的開展,對于人們獲取資源的方式也在不斷的更新。開始人們獲取資源的形式是通過訪問效勞器,即人們熟知的C/S模式,C是客戶端,S是效勞端,客戶端通過向效勞器發(fā)送請求,然后效勞器把客戶端所需的數(shù)據(jù)傳遞過去,這是最簡單的傳遞方式。與此相類似的,還有目前流行的P2PPeer-To-Peer下載技術,它的實現(xiàn)原理是兩個用戶之間可以傳遞信息,而無需經(jīng)過效勞器的傳輸。與C/S模式相比,這種下載方式更加快速便捷。在此根底上,隨著網(wǎng)絡的快速開展,人們還研究出一種流媒體下載技術,這種下載技術的優(yōu)點在于可以緩存下載,在使用的同時到達下載的目的,既方便了用戶的使用,也下載了資源,為用戶帶來了很大的方便。由以上的分
18、析可以看出,隨著計算機網(wǎng)絡的不斷開展,信息在不斷更新的同時,技術也在不斷的進步,同時新的下載技術也在運用而生,為人們的生活和工作提供極大的便利。而多線程下載技術,是目前很流行的一種技術,它不僅可以解決多任務下載,即幾個文件同步下載,也有斷點續(xù)傳的功能,即在因為各種突發(fā)狀況阻止了正常的下載時,會保存已有的下載資料,當再一次下載時,會從上一次停止下載的地方開始繼續(xù)下載。多線程下載技術還可以提高帶寬和CPU的使用效率,可見這種下載技術與最初的下載技術相比為用戶帶來了很多的便捷,同時也加快了下載的速度。筆者撰寫本文,就是通過比擬已有的下載工具,開掘其的優(yōu)缺點,在此根底上研究和分析多線程下載技術,并實現(xiàn)
19、了這一技術。 選題意義1.2.1 理論意義從理論意義上看,多線程下載技術與傳統(tǒng)的下載工具相比,有很多優(yōu)點,這種技術可以提高低載速度從而增強系統(tǒng)利用率,除此之外由于該技術能夠支持多任務同步進行下載,所以可以提高CPU的利用率,還能充分利用系統(tǒng)內部的有用資源。在如今的科技高速開展情況下,軟件和新技術的開發(fā)的更新?lián)Q代速度飛快,人們對更加新穎、更加實用的軟件資源都如饑似渴,電子產(chǎn)業(yè)在擁有良好的市場的前提下,想要開展的話就必須擁有良好的運作經(jīng)營模式和遠大的開展戰(zhàn)略。而實際上國內的技術水準已經(jīng)與國外許多優(yōu)秀電子企業(yè)的水準不相伯仲,但是,圍欄網(wǎng)應對更加劇烈的國際競爭,我們必須不斷研究新技術,提出新設想,設計
20、出更加新穎方便的軟件來。因此,我們必須不斷學習,研究開發(fā)。本課題是基于學習Java課程以后,對其進一步研究,深入探索,并且借鑒前人的觀點而提出來的,在研究前人的技術后,對Java多線程進一步探索,做出了多線程下載工具。1.2.2 現(xiàn)實意義從現(xiàn)實意義上看,電子時代是21世紀的新型代表,它推動著人們的生活逐漸步入信息化時代。據(jù)不完全統(tǒng)計,近幾年,我國網(wǎng)民以百分之三十多的速度遞增。據(jù)專家組統(tǒng)計目前我國網(wǎng)民的人數(shù)已經(jīng)到達四億多?,F(xiàn)如今,人們查找資料,第一時間想到的就是從網(wǎng)上獲取,下載自己所需的資源。而用戶對網(wǎng)絡的要求也不斷加大,他們?yōu)榱斯?jié)省時間,通常會選擇最平安,最穩(wěn)定,下載最快的工具來獲取資源。隨著
21、十八大全面深化改革的提出,科技的開展占據(jù)著舉足輕重的作用,特別是對計算機技術的推動有很重要的意義。Java多線程下載工具可以為人們提高工作效率,有效利用資源配置有很大的幫助,所以本課題的提出既有一定的理論意義,也有一定的現(xiàn)實意義。1.3 現(xiàn)狀分析線程技術的提出是在60年代左右開始的,然而,真正將多線程這一技術使用到操作系統(tǒng)中,是在80年代中期。傳統(tǒng)的Unix通常也支持多線程技術,但是一般在一個進程中只能有一個線程,因此多線程便意味著多進程。到目前為止,多線程技術已經(jīng)被很多操作系統(tǒng)所支持,例如:Windows,Linux。為什么有了進程這個概念后,還要引入線程的概念?而且多線程技術和多進程技術的
22、優(yōu)點何在?以及什么樣的技術程序會使用多線程技術?這些都是應該首先要考慮的問題。在20世紀60年代左右,進程這一名詞首先在麻省理工學院的MULTICS系統(tǒng)和IBM的CISS/360系統(tǒng)中被引進和說明。進程和線程是調度的根本單位,它們管理的是操作系統(tǒng)的核心局部,線程描述的是進程內的執(zhí)行,負責執(zhí)行包含在進程的地址空間中的代碼。進程有三個重要特性,分別是:第一,獨立性。進程是系統(tǒng)中獨立存在的實體,它可以擁有自己獨立的資源。例如:文件和設備描述符等。未經(jīng)進程的允許,其他進程不能訪問到這些資源。第二,動態(tài)性。程序只是一個靜態(tài)的指令集合,而進程是一個正在系統(tǒng)中活動的指令集合在進程中參加了時間的概念。進程具有
23、自己的生命周期和各種不同的狀態(tài)。第三,并發(fā)性。并發(fā)性由獨立性和動態(tài)性衍生而來。假設干個進程可以在單處理機狀態(tài)上并發(fā)執(zhí)行。并發(fā)與并行:并行,指在同一時刻內,有多條指令在多個處理機上同時執(zhí)行。并發(fā),指在同一時刻內,只能有一條指令執(zhí)行,但多個進程的指令被快速輪換執(zhí)行,使得在宏觀上具有多個進程同時執(zhí)行的效果。線程和進程相比有以下優(yōu)點:第一,“節(jié)儉的多任務操作方式。在Linux系統(tǒng)下,啟動一個新的進程必須分配給獨立的地址空間,建立眾多的數(shù)據(jù)表來維護它的代碼段、堆棧段和數(shù)據(jù)段。運行一個進程中的多個線程,彼此之間使用相同的地址空間、共享大局部數(shù)據(jù)、啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的時間。線
24、程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間。第二,線程間方便的通信機制。對不同進程來說,它們具有獨立的數(shù)據(jù)空間,要進行數(shù)據(jù)的傳遞只能通過通信的方式進行,這種方式費時而不方便。由于同一進程下的線程之間共享數(shù)據(jù)空間,它們共享全局變量、共享進程指令、大多數(shù)數(shù)據(jù)和翻開的文件如描述字、信號處理程序和信號處置、當前工作目錄、用戶ID和組ID,一個線程的數(shù)據(jù)可以直接為其他線程所用,快捷方便。第三,提高運用程序響應。對圖形界面的程序尤其有意義當一個操作耗時很長時,整個系統(tǒng)都會等待這個操作,此時程序不會響應鍵盤、鼠標、菜單的操作使用多線程技術,將耗時長的操作置于一個新的線程,可以防止這種為難的情況。
25、第四,使多CPU系統(tǒng)更加有效。操作系統(tǒng)會保證當線程數(shù)不大于CPU數(shù)目時不同的線程運行于不同的CPU上。第五,改善程序結構。進程分為多個線程,成為幾個獨立或半獨立的運行局部,程序利于理解和修改。第六,數(shù)據(jù)共享問題。有的變量不能同時被兩個線程所修改,有的子程序中聲明為靜態(tài)的數(shù)據(jù)更有可能給多線程程序帶來災難性的打擊,帶來了同步問題。這些是最需要注意的問題。1.4 本文結構本文通過參考各學者們對下載工具的研究內容,深入分析各種下載技術的工作原理以及它們之間的的優(yōu)缺點,著重探討多線程下載技術,并在此根底上對多線程下載技術進行研究,實現(xiàn)其功能。首先從網(wǎng)絡的開展與現(xiàn)狀入手,對網(wǎng)絡上流行的下載工具進行介紹。隨
26、后總體介紹論文的研究內容,隨后闡述論文涉及到的相關技術,對相關技術進行深入分析,介紹本文設計用到的相關概念,最后對全文進行總結。其結構設置如下:第一局部 緒論主要論述關于多線程下載技術的背景介紹,研究意義,現(xiàn)狀分析等;第二局部 主要是分析常用的下載技術的現(xiàn)狀,并比照分析各種下載技術的優(yōu)缺點;第三局部 對所涉及到多線程下載技術相關概念的介紹;第四局部 多線程下載技術的需求分析;第五局部 多線程下載技術的設計局部;第六局部 多線程下載工具功能實現(xiàn)第七局部 系統(tǒng)測試。2 常用下載技術現(xiàn)狀網(wǎng)絡下載工具的技術的演進大體上可以劃分為四個階段,分別是Web下載、P2P下載、流媒體下載、多線程下載。這些技術隨
27、著計算機的開展,不斷有所突破,不斷進步著,給人們的生活帶來了極大的方便。以下分別對這些技術做簡要的介紹,對各自的主要技術核心做出分析。2.1 Web下載這種方式在互聯(lián)網(wǎng)上是最常用的,也是最傳統(tǒng)的方式。最初用戶在網(wǎng)上發(fā)送郵件或者下載資料時,都是使用C/S方式。Cclient是客戶,Sserver是效勞器它們都是在通信過程中的兩個應用程序。當客戶端向效勞器提出下載請求時,效勞器端收到請求后,就會將信息資源傳輸個給客戶端。最常用的Web下載方式有兩種,分別是 和FTP,這是兩種常見的傳輸協(xié)議,這兩種協(xié)議規(guī)定了瀏覽器如何向效勞器請求萬維網(wǎng)文檔,并且效勞器如何把文檔傳送給瀏覽器的過程。用戶使用這兩種協(xié)議
28、與效勞器發(fā)生鏈接,然后把數(shù)據(jù)傳送并保存到本地,實現(xiàn)下載的功能。 是Hyper Text Transportation Protocol的簡稱,即超文本傳輸協(xié)議。這種下載方式是最傳統(tǒng)的,也是最簡單的一種。其下載的根本原理就是客戶利用 這種特殊的適宜和規(guī)那么向效勞器傳遞信息,然后效勞器發(fā)出應答請求,將數(shù)據(jù)傳輸給用戶并保存到用戶電腦上,以此來實現(xiàn)下載的目的。這種下載方式是最初開始的,其他在后來開展起來的下載方式都是以 下載為根底衍生出來的,它在所有的下載方式中發(fā)揮著很重要的作用。然而 下載也存在著一些弊端,在客戶請求下載時,必須先建立TCP連接,然后才能向效勞器發(fā)送下載資源的請求。但是一般效勞器上的
29、數(shù)據(jù)是有限的,有時候客戶可能無法找到自己想要的信息,這就給客戶資料的來源帶來麻煩。并且,在同一時間,可能會有不同的客戶向同一臺效勞器發(fā)送了下載請求,導致效勞器向多個客戶發(fā)送響應,會減緩響應的速度,從而導致下載速度緩慢,影響客戶的工作和學習。FTP是File Transfer Protocol的簡稱,中文名是文件傳輸協(xié)議,它是Internet上使用最廣的文件傳輸協(xié)議。FTP下載也是網(wǎng)絡上下載資源很傳統(tǒng)的一種方式。它提供交互式的訪問,允許用戶指明文件類型和格式、可以控制下載數(shù)據(jù)的用戶數(shù)、屏蔽計算機系統(tǒng)的細節(jié)、可以將下載資源的速度控制在一定的范圍等這些優(yōu)勢。這種下載技術比擬適合下載容量比擬大的資源,
30、比方:電影、視頻等??蛻舳朔掌餍谙螺d請求收到下載請求Web下載的工作原理見圖2.1所示。圖2.1 Web下載原理圖2.2 P2P下載P2P下載Peer-To-Peer,也叫對等連接指的是兩個主機在通信的過程中不加以分別效勞請求方和效勞提供方,它們是平級的關系。在通信的過程中,如果兩臺主機之間運行了對等連接軟件即P2P,它們之間的通信就是平等的,對等的。并且,二者之間可以相互下載對方存儲在硬盤中的共享文檔。P2P的工作原理的實質還是客戶效勞器的方式,但是其中的每臺主機既可以作效勞器也可以做客戶機,假設PC1向PC2發(fā)出下載請求,那么PC2作為效勞器把信息傳遞給PC1,而同時PC3向PC1發(fā)出
31、下載請求,此時PC1作為效勞器傳遞數(shù)據(jù)給PC3。所以,PC1在這個過程中,既作為客戶機下載數(shù)據(jù),也作為效勞器傳輸數(shù)據(jù)。這就是P2P的工作原理。有P2P的工作原理可以看出,P2P下載有很多優(yōu)點:隨著網(wǎng)絡的不斷開展,網(wǎng)絡開始提供音頻、視頻等效勞,利用寬帶上網(wǎng)的人數(shù)也不斷增加。而很多用戶接入寬帶是因為其網(wǎng)速比擬快,在下載資料時速度一般較快。這種狀況致使網(wǎng)上的一些效勞器是在超負荷下工作,有些效勞器甚至在許多用戶不停地訪問時導致癱瘓,無法工作。而P2P下載方式不需要集中式的效勞器,從而不存在集中效勞器導致的瓶頸問題,因而這種下載方式受到很多用戶的青睞。在P2P的工作方式下,所有的文件都是在普通的網(wǎng)絡用戶
32、之間傳輸,其原理相當于許多分散在各地的效勞器,向其他的用戶提供下載資源。而且,P2P下載時,每個主機既是效勞器又是客戶機,與C/S下載方式相比,降低了對效勞器的性能要求,而且資源可以存儲在不同的節(jié)點即主機之間,對效勞器的壓力不會很大,實現(xiàn)了負載均衡。再者,其下載過程是不同的節(jié)點之間進行的,其中如果這兩個節(jié)點之間出現(xiàn)了通信不暢通問題時,不會影響到其他主機之間的通信。這些優(yōu)點使得P2P文件下載技術在Internet數(shù)據(jù)下載中占據(jù)了相當大的份額,相比Web下載的比例要多。然而隨著P2P下載技術的廣泛使用,也產(chǎn)生了一些問題需要解決。這些問題的產(chǎn)生一方面使人們想方法解決這些問題,另一方面也促使人們開發(fā)更
33、為先進的下載技術。其中最突出的問題就是文件的知識產(chǎn)權問題,還有就是不法分子會在網(wǎng)上傳播一些非法盜版的、不健康的視頻等,這些問題導致P2P下載技術很難有效的管理,這使得這一技術在這方面問題上還存在相當大的難度。其實,P2P網(wǎng)絡是一種較為脆弱的網(wǎng)絡,P2P中節(jié)點之間的關系,就好比是人與人之間的關系。這些節(jié)點的建立,就像人際關系一樣,為了共同的目的或興趣愛好聚集在一起。它們建立關系的時候是平等互信的,但是當網(wǎng)絡范圍擴大時,它們的關系很可能就會偏離原來的狀態(tài)。導致節(jié)點之間出現(xiàn)欺騙或傳遞虛假信息,所以P2P建立的關系是較為脆弱的。而且,在P2P網(wǎng)絡中,效勞器的身份已經(jīng)不是網(wǎng)絡的中心,但它扔控制整個網(wǎng)絡的
34、工作,當效勞器出現(xiàn)故障是會導致整個網(wǎng)絡的癱瘓。而且,目前P2P文件共享程序的大量使用,消耗了網(wǎng)絡上的大量帶寬,加之用戶一些并非重要文件的隨意下載,以及大量視頻、音頻等較大文件的下載,導致帶寬的浪費更為嚴重,致使網(wǎng)絡運營商也沒有從中盈利。除此之外,由于P2P網(wǎng)絡的不平安性,擁有大量用戶的網(wǎng)絡很可能成為黑客或不法分子圖利的對象,這些缺點導致P2P極大的不平安性。P2P下載方式的工作原理用圖表示,可見下列圖2.2所示。效勞器PC1PC2PC3圖2.2 P2P下載技術工作原理2.3 流媒體下載流媒體下載技術具有單一性,它專門用于網(wǎng)絡多媒體信息的傳播和處理。它與上述兩種下載方式不同的特點是它可以一邊播放
35、一邊下載。它的使用需要一定的緩存。因為一個實時音視頻源或存儲的音視頻文件在傳輸中被分解為許多數(shù)據(jù)包,而網(wǎng)絡是動態(tài)變化的,各個包選擇的路由可能不同,所以到達客戶端的時延也不同,可能先發(fā)的數(shù)據(jù)包會后到。所以就要使用緩存來消除時延和抖動,以保證數(shù)據(jù)包順序正確,從而使媒體數(shù)據(jù)能夠連續(xù)輸出。其工作原理是:首先它的實現(xiàn)需要適宜的傳輸協(xié)議。它不使用TCP協(xié)議,因為TCP協(xié)議需要很多開銷,它不適合傳輸實時數(shù)據(jù)。在流式傳輸實現(xiàn)中,一般采用 /TCP來傳輸控制信息,而用實時傳輸協(xié)議/用戶數(shù)據(jù)報協(xié)議RIP/UDP來傳輸實時數(shù)據(jù)。當用戶使用流媒體技術想要獲得自己做需要的信息時,用戶和效勞器之間就會相互交換信息,使用的
36、協(xié)議是 /TCP,那么就會尋找到所需要的數(shù)據(jù)信息;瀏覽器使用音視頻客戶程序,使用 從效勞器檢索相關參數(shù)對音視頻客戶程序初始化,這些參數(shù)可能包括目錄、音視頻數(shù)據(jù)的編碼類型與 音視頻檢索相關的效勞器地址信息等;音視頻客戶程序及音視頻效勞器運行實時流協(xié)議,以交換音視頻傳輸所需的控制信息,實時流協(xié)議提供執(zhí)行播放、快進、快倒、暫停及錄制等命令的方法;音視頻效勞器使用RTP/UDP協(xié)議將音視頻數(shù)據(jù)傳輸給音視頻客戶程序,一旦音視頻數(shù)據(jù)抵達客戶端,音視頻客戶程序即可播放輸出。流媒體技術應用最廣泛的是在視頻點播、遠程教育等方面。由流媒體的工作原理了解到,這種下載方式一方面可以緩解網(wǎng)絡傳輸?shù)呢摀涣硪环矫婵梢越档?/p>
37、對客戶端緩存的要求。并且流媒體可以實現(xiàn)一邊下載一邊播放的特點,與傳統(tǒng)的下載工具先下載、后播放的方式相比,可以大大的縮短用戶的等待時間,給用戶帶來極大的方便。而且,一般傳輸?shù)奈募葦M小,因而傳輸過程中往往比擬快速,讀取信息也不會浪費大量的時間,可以很容易的獲得,這樣可以節(jié)省不少花費。再者該技術與傳統(tǒng)的方式不同,在輸送數(shù)據(jù)過程是不間斷的,所以它能夠很容易的追蹤與用戶有關系的信息。這一大功能在教育行業(yè)發(fā)揮了很大的作用。流媒體與傳統(tǒng)的下載工具相比還有一個更顯著的優(yōu)勢就是,我們生活中一般的電影和電視都是是單向的,內容也是不變的電視的內容可以選擇。當人們觀看時只能被動的接受,不管是什么節(jié)目,不能快進、快退
38、隨意選擇,這樣會使瀏覽者沒有選擇權,只能跟隨媒體的選擇,有時會有一些用戶不想看的節(jié)目,但是用戶又必須觀看。而流媒體與傳統(tǒng)的媒體技術不同,它的資源要比傳統(tǒng)的多,而且是開放性的,內容也很豐富,用戶掌握了主動權,可以根據(jù)自己的意愿指揮、控制它,讓流媒體完全為自己主宰,效勞于自身。雖然流媒體技術有很多優(yōu)點,但是這種技術是在傳統(tǒng)下載技術的根底上,新開展起來的媒體技術,所以到目前為止它的標準不一,由此其在開展過程中可以不拘一格,以多種形式開展,從而促使其快速開展,但這也使得流媒體的開展受到障礙。目前,有關方面也意識到這個問題,研究人員正在擬定一個適合流媒體自身開展的標準。所以流媒體的開展在管理、商業(yè)運營等
39、方面還存在一些技術問題有待解決。定位Web瀏覽器Web效勞器A/V播放器A/V效勞器元文件 /TCPRTSP/TCP。圖2.3 流媒體下載技術工作原理2.4 多線程下載多線程是Java編程中的一局部,它是實現(xiàn)并發(fā)的一種重要手段,一個進程可以通過運行多個線程來并發(fā)地執(zhí)行多項任務。多線程下載指的是:線程通俗的說就相當于是通道,就像水流需要渠道一樣,線程是信息傳輸是所需要的通道。一個線程就相當于傳輸一個文件所需要的一個通道,同樣的意思多線程就是在同時下載多個資源時必須有多個通道,就像水流從不同的渠道流出一樣,下載的資源信息也是從不同的通道傳輸。當有好多個用戶同時申請從一臺效勞器上下載數(shù)據(jù)的時候,這些
40、用戶之間會共享該效勞器的帶寬,當級別相同的時候,這些用戶之間會平均獲得下載進程。那么,線程越多,得到的資源就會越多,從而在下載資源的時候,其速度相對也會加快。多線程下載技術的優(yōu)點在于,它不同于單線程,單線程下載時只能發(fā)送一個請求,所以只能下載一個資源。而多線程恰恰相反,它可以同時發(fā)送多個請求,每個請求都會下載資源,這樣可以大大提高低載的速度,而且能夠充分使用主機資源和帶寬。基于多線程下載技術的優(yōu)點,本文通過分析該技術的可行性和設計的總體過程,并實現(xiàn)了該下載技術。在本課程設計中,多線程技術用在新建新任務和下載線程上,在系統(tǒng)中我們可以開始多個下載線程下載同一個網(wǎng)絡上的資源而互不干擾。從宏觀上看是并
41、行的,但對于微觀上來說,它卻是并行運行的,線程的運行在操作系統(tǒng)的調度下,各自得到一定的時間片,當某一線程獲取到時間片時,它就進入運行狀態(tài)。各個線程按照一定的協(xié)議分別獲取時間片。3 相關概念介紹3.1 Java多線程Java語言是Sun公司開發(fā)出來的一種面向對象進行設計的編程語言。是一種具有現(xiàn)代性的計算機語言,隨著技術的不斷更新,Java已被廣泛接受并推動了Web的迅速開展。Java的一大目標就是使程序開發(fā)者可以交互程序,對一個問題可以分解成多個任務來執(zhí)行。而多線程可以使編寫的程序同時執(zhí)行多個任務。多線程指的是每個正在系統(tǒng)上運行的HYPERLINK :/baike.baidu /view/176
42、74.htm程序都是一個HYPERLINK :/baike.baidu /view/19746.htm進程。每個HYPERLINK :/baike.baidu /view/19746.htm進程包含一到多個線程。HYPERLINK :/baike.baidu /view/19746.htm進程也可能是整個HYPERLINK :/baike.baidu /view/17674.htm程序或者是局部程序的動態(tài)執(zhí)行。線程是一組HYPERLINK :/baike.baidu /view/178461.htm指令的集合,或者是HYPERLINK :/baike.baidu /view/17674.htm
43、程序的特殊段,它可以在程序里獨立執(zhí)行。也可以把它理解為HYPERLINK :/baike.baidu /view/41.htm代碼運行的上下文。所以線程根本上是輕量級的HYPERLINK :/baike.baidu /view/19746.htm進程,它負責在單個HYPERLINK :/baike.baidu /view/17674.htm程序里執(zhí)行多htm任務。通常由HYPERLINK :/baike.baidu /view/880.htm操作系統(tǒng)負責多個線程的調度和執(zhí)行。線程是HYPERLINK :/baike.baidu /view/17674.htm程序中一個單一的順序控制流程.在單個
44、程序中同時運行多個線程完成不同的工作,稱為多線程.多線程為該程序的基石,通過開啟多個線程對資源進行請求和下載,使下載速度得到質的飛躍,也是該工程的關鍵。線程有兩組突出的特點,以下來介紹該組概念:第一,線程的共性和個性。線程的共性。同一個進程中,線程都有共性:多個線程將共享同一個進程虛擬空間。線程共享的環(huán)境包括:進程代碼段、進程的公有數(shù)據(jù)利用這些共享的數(shù)據(jù),線程很容易的實現(xiàn)相互之間的通訊、線程翻開的文件描述符、信號的處理器、進程的當前目錄和進程用戶ID與進程組ID。線程的個性。線程的個性是實現(xiàn)并發(fā)性的必要條件。每個線程都有自己的線程ID,這個ID在本進程中是唯一的。一個線程切換到另一個線程上時,
45、必須將原有的線程的存放器集合的狀態(tài)保存,以便將來該進程在被重新切換到時能得以恢復。線程必須擁有自己的函數(shù)堆棧,使得函數(shù)調用可以正常執(zhí)行,不受其他線程的影響。不同線程應該擁有自己的錯誤返回碼變量。第二,線程的并發(fā)性和并行性。線程的并發(fā)性。進程內至少同時有兩個線程進行時才存在并發(fā)性問題。在單處理器上執(zhí)行的多線程的進程內部,處理器可以在線程之間按照一定策略切換運行,從而實現(xiàn)了同時執(zhí)行。線程的并行性。至少同時需要有兩個線程在執(zhí)行時才存在并行性。在共享存儲多處理器上執(zhí)行的同一個多線程進程,在同一時刻內,有多條指令在多個處理機上同時執(zhí)行。3.2 線程的創(chuàng)立和退出及其函數(shù)調用1. 線程的創(chuàng)立以下函數(shù)是線程的
46、創(chuàng)立函數(shù),要創(chuàng)立新的線程,必須調用該函數(shù)。int pthtead_create(pthtead_t *tid, const pthtead_attr_t *attr, void *(*func)(void *),void *arg):第一個參數(shù)為指向線程標識符的指針,第二個參數(shù)用來設置線程屬性,第三個參數(shù)是線程運行函數(shù)的起始地址,最后一個參數(shù)是運行函數(shù)的參數(shù)。2.線程的退出1等待線程的結束函數(shù):int pthread_join(pthread_ttid,void*status):第一個參數(shù)為被等待的線程標識符,第二個參數(shù)為一個用戶定義的指針,它可以用來存儲被等待線程的返回值。2終止線程函數(shù):v
47、oid pthread_exit(void*value_ptr):唯一的參數(shù)是函數(shù)的返回代碼。3.3 協(xié)議 協(xié)議即超文本傳輸協(xié)議,是面向事務的應用層協(xié)議,使用TCP連接進行可靠傳輸,它是萬維網(wǎng)能夠可靠交換文件如文本、聲音、圖像等的重要根底。瀏覽器和效勞器之間想要通信時,每個網(wǎng)點都有一個效勞器進程,用以監(jiān)聽TCP端口80。一旦瀏覽器發(fā)出建立連接請求,如果效勞器監(jiān)聽到該請求,就建立了TCP連接,瀏覽器就像效勞器發(fā)出請求,效勞器就會返回所請求的信息作為響應。最后,將TCP連接釋放。在整個過程當中,所遵循的規(guī)那么就是 協(xié)議。它使用了面向連接的TCP作為傳輸曾協(xié)議,能夠保證數(shù)據(jù)的可靠傳輸。但是要說明的是
48、,在客戶端瀏覽器和效勞器建立連接時不一定必須使用TCP三次握手來實現(xiàn), 只是假定它的傳輸層協(xié)議是可靠的,因此 協(xié)議的下層協(xié)議只要是可靠的傳輸協(xié)議都可以被 協(xié)議使用。雖然這種完成一次便斷開連接的形式,看起來增加了下次通信連接的網(wǎng)絡開銷,但是,站在效勞器的角度來看,這種方式可以減少效勞器的持續(xù)連接的開銷,當有多個客戶端連接該效勞器時,這種保持連接的消耗會變得非常巨大,以至于效勞器不能再接收更多客戶端的連接,減少了效勞器的利用率。3.4 URL和 URLURL即統(tǒng)一資源定位符,是表示從Internet上得到的資源位置和訪問這些資源的方法。它給資源如文件、圖像、視頻等的位置提供了一種抽象的識別方法,這
49、樣就可以給資源定位,通過這種定位,系統(tǒng)就可以對它們實施一些操作,如查找。存儲等。URL一般由四局部組成,它的表示方法是::/:/因為萬維網(wǎng)的訪問要使用 協(xié)議,那么能夠標識這個地址的唯一東西就是 的URL。此時的表示方法就是: :/ :/例如當訪問太原理工大學的網(wǎng)頁時,其URL就是: HYPERLINK :/ :/ tyut4 多線程下載工具需求分析4.1 用戶需求分析信息化時代的今天,網(wǎng)絡成為人們生活、工作的必須品,人們獲取資料的方式也是通過網(wǎng)絡來得到。人們對網(wǎng)絡需求增加的同時,對其要求也逐漸嚴格。他們都希望以最快的速度獲取信息,甚至不想多等一分鐘,有的人可能想著只要輕觸鍵盤
50、就能獲得所需要的信息。例如,人們在網(wǎng)上希望找到自己想要下載的視頻、音樂等。人們現(xiàn)在不單是使用瀏覽器關注網(wǎng)頁上的東西,很多人們喜歡用一些軟件下載自己想要的資料,而且對下載工具的速度和平安性要求越來越高。而多線程下載技術能夠在同一時間運行多個線程,也就是說它可以同時下載多個資源,通俗的說就是可以將一個下載工作劃分為幾個小任務共同完成,這樣可以在很大程度上提高資源的下載效率。傳統(tǒng)的下載工具很難解決這樣一個問題,就是如果下載的文件較大,或者所需的時間較長時,那么此時對計算機和網(wǎng)絡的要求就很高。也就是在此過程中,計算機不能出任何問題,否那么下載就會失敗。例如:有時計算時機斷電、或者斷網(wǎng)、或者造成死機、藍
51、屏等,這時必須重啟計算機。那么,要是傳統(tǒng)下載工具的話,之前下載的東西就會喪失,還要重新開始下載,這就會浪費用戶大量的時間。而多線程下載,有一個功能就是斷點續(xù)傳,意思是當有意外終止下載時,下載任務不會因此喪失,開始重新下載時,計算時機從停止的位置繼續(xù)下載,這樣可以減少不必要的麻煩,節(jié)省了大量的時間,所以多線程下載受到很多用戶的喜愛。見下表1所示,整合了該系統(tǒng)的需求分析表。表4.1 多線程下載需求分析表序號功能名稱功能描述1多線程一個下載任務同時由多個線程同時下載2支持 協(xié)議能夠下載 類型的資源數(shù)據(jù)3斷點續(xù)傳當斷電或關閉下載任務后,下次能夠繼續(xù)下載4圖形界面輸入URL地址,保存地址和文件名,線程數(shù)
52、4.2 可行性分析 可行性分析的目的就是對所作的系統(tǒng)進行分析,確定該系統(tǒng)是否可行。就是開發(fā)人員盡可能用較小的人力、物力、財力到達所期望的目的。其中根本的可行性分析包括技術可行性、經(jīng)濟可行性和社會可行性。下邊分別從這三方面探討多線程下載技術實現(xiàn)的可行性。4.2.1 技術可行性 多線程是Java語言的中很重要的一局部知識,而Java語言是目前使用最多的語言之一。多線程是實現(xiàn)并發(fā)的一種主要手段。在Java現(xiàn)有語言的根底上,完全可以實現(xiàn)多線程下載這一任務。在開發(fā)過程中,其技術方案是:開發(fā)工具:Eclipse+JDK開發(fā)環(huán)境:windows運行環(huán)境:windows4.2.2 經(jīng)濟可行性經(jīng)濟可行性分析要估
53、計工程的效益和本錢,分析工程經(jīng)濟上是否合理和可行,能夠在最低本錢的情況下,開發(fā)出最大價值的軟件。經(jīng)濟可行性解決的最重要的兩大問題是資金可得性和經(jīng)濟合理性。而多線程下載技術的開發(fā),在很大程度上可以為用戶帶來便捷,能夠提高低載速度。而該下載程序的開發(fā)也不會消耗太多的資源,所以在這方面該軟件完全符合。4.2.3 操作可行性該下載程序設計好后,對用戶的計算機能力要求不高,只需要會計算機的根本操作即可。而且,程序設計的界面友好、操作非常簡單,用戶不用花費太多的時間去學習,所以很容易被用戶接受。所以,從操作可行性來看,該下載工具也是相當可行的。4.3 業(yè)務流分析多線程下載工具的業(yè)務流程是:用戶需要下載信息
54、時,首先需要登錄下載系統(tǒng),然后在新建的任務列表中填寫與下載資源有,關的下載信息,例如:資源的URL地址,資源的存儲路徑,以及下載任務所需的線程數(shù)等。填寫好信息時,軟件會自動發(fā)送 協(xié)議請求,效勞器收到下載請求后,會返回相應的相應消息。效勞器確定下載消息的信息無誤后,就會啟動線程。從而將緩存中存儲的數(shù)據(jù)最終存儲到目的存儲路徑。除此之外,系統(tǒng)還可以完成一些根本操作,如:停止、繼續(xù)、刪除任務等。以便用戶在下載資源時隨時掌控。5 多線程下載工具的設計5.1 整體設計隨著計算機的開展,人們獲取資源的途徑逐漸轉移到計算機,大局部人們都喜歡從網(wǎng)上尋找想要的信息。而且,人們對資源需求加大的同時,對下載的需求也增
55、大。人們往往喜歡一次性把資源參加下載列表,這樣下載是花費的時間也不斷增加,用戶的需求不斷充滿著下載工具的下載效率和速度。而多線程下載技術,恰恰能夠有效的提高低載的速度。因為多線程下載技術最大的優(yōu)點就是能夠充分地利用調制解調器的數(shù)據(jù)傳輸能力,從而到達在最短的時間內將一個軟件下載過來的目的。筆者就是通過比照分析傳統(tǒng)的下載技術和多線程下載技術,分析多線程下載的特點,并研究和實現(xiàn)了Java多線程下載的開發(fā)。 模塊劃分本系統(tǒng)可以劃分為以下3大模塊:對下載任務的url資源進行定位,并開啟線程將資源輸出流寫入到本地計算機下載文檔中對應文件的固定位置。對下載任務線程進行配置與啟動,相當于整個系統(tǒng)的總裝模塊,從
56、用戶界面取得url參數(shù),并對下載線程配置并啟動。3用戶界面模塊給用戶可視化的界面進行操作,使下載工具有一個較高的易用性,通過界面,用戶將url路徑傳遞給程序,完成下載任務。用戶界面包含的內容有:菜單欄、工具欄和下載信息欄。其界面親和力強,用戶易于操作,用戶容易掌握。用戶界面的功能圖見圖5.1所示。用戶界面按鈕工具條添加下載任務主窗口屬性面板圖5.1 用戶界面功能圖用戶在下載資源時,可以將任務分為以下幾局部:開始時,要新建下載任務,開始下載任務,中途可以暫停下載任務,刪除下載任務,翻開文件目錄,獲取下載源文件消息,判斷獲取的URL地址是否是有效的等功能。5.3 數(shù)據(jù)下載流程用戶調度多線程下載全部
57、線程運行是否生成下載文件結束圖5.2 多線程下載數(shù)據(jù)流程圖見圖所示,描述了該下載工具的整個數(shù)據(jù)流程。用戶想要下載資料時,先要進入用戶下載界面,新建一個任務欄,然后將與所下載資料的信息填入任務欄,例如URL地址。然后下載工具的進程會想效勞器發(fā)送 報文請求,效勞器收到請求后,會同時返回響應報文。如果用戶填入的地址是正確的,效勞器確認后,就會啟動線程,下載資源。如果是不合法地址,下載將無法正常進行,用戶需要核對地址,輸入合法的URL。下載好的資源就會存儲到事先建立的文件夾。當整個過程完成后,下載就結束了。5.4 關鍵技術1 URLConnection URLConnect類通過 協(xié)議發(fā)送請求道效勞器
58、,并取得效勞器返回的response。URLConnection是個HYPERLINK :/baike.baidu /view/262290.htm抽象類,它有兩個直接子類分別是 URLConnection和JarURLConnection。每個 URLConnection 實例生成單個請求,請求后在 URLConnection 的 輸入或輸出上調用 close() 方法可以釋放網(wǎng)絡資源,但如果在調用 disconnect()那么可能關閉baseHYPERLINK :/baike.baidu /view/538713.htm套接字。本程序通過 URLConnection可通過setReques
59、tProperty(Range,startps ,endpas)可以從不同位置對web資源進行請求的特點,將資源分拆,并通過多線程技術,每個線程對資源的一局部進行下載,實習多線程下載。2.RandomAccessFile RandomAccessFile用來訪問文件,用seek( )方法來訪問文件位置,并進行讀寫。這些記錄的大小不必相同;但是其大小和位置必須是可知的。但是該類僅限于操作文件。 RandomAccessFile不屬于InputStream和OutputStream類系的,不使用InputStream和OutputStream類中的方法;是一個完全獨立的類,所有方法從零開始寫。總而
60、言之,它是一個直接繼承于Object的類。 RandomAccessFile的工作方式是把DataInputStream和DataOutputStream相結合,然后使用自己的方法,它不支持只寫文件。本程序利用其特性,將由 URLConnection的每一個線程所下載的資源作為一個文件的一局部,最終,當下載完成后,可以完好的保持資源的完整性。5.5 根本操作根本操作是在程序中頻繁使用的一些操作,這些操作可能會被執(zhí)行幾十甚至幾百次,當這些操作被調用的時候,為了方便先做簡要說明。下載管理的主要操作有以下幾方面:Socket操作創(chuàng)立一個Socket套接字;綁定一個Socket套接字;翻開一個Sock
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《留置針使用規(guī)范》課件
- 《小數(shù)數(shù)位順序表》課件
- 八下期中測試卷01【測試范圍:第1-11課】(原卷版)
- 旅游行業(yè)導游講解培訓總結
- 2006年江蘇高考語文真題及答案
- 年度目標設定與實現(xiàn)路徑計劃
- 幼兒園工作總結用心呵護溫馨成長
- 《焊工基礎知識》課件
- 2023年-2024年新員工入職前安全教育培訓試題附參考答案(奪分金卷)
- 廚師個人述職報告15篇
- 人教版小學四年級數(shù)學上冊期末復習解答題應用題大全50題及答案
- 冀教版五年級上冊脫式計算題100道及答案
- 你是排長我是兵(2022年山東濟南中考語文試卷記敘文閱讀題及答案)
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之22:“8運行-8.2 創(chuàng)新行動”解讀和應用指導材料(雷澤佳編制-2024)
- 廣東省中山市2023-2024學年高三物理上學期第五次統(tǒng)測試題含解析
- 《體育科學研究方法》題庫
- 高級會計實務案例分析-第三章 企業(yè)全面預算管理
- DL∕T 5142-2012 火力發(fā)電廠除灰設計技術規(guī)程
- 城域網(wǎng)建設方案
- 政府會計 第二版 課件 第七章 凈資產(chǎn)與預算結余
- 2024年恩施州直事業(yè)單位選聘36人歷年(高頻重點提升專題訓練)共500題附帶答案詳解
評論
0/150
提交評論