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

正文內(nèi)容

java多線程與線程安全實(shí)踐基于ttp協(xié)議的斷點(diǎn)續(xù)傳—計(jì)算機(jī)畢業(yè)設(shè)計(jì)-閱讀頁

2024-12-13 16:18本頁面
  

【正文】 網(wǎng)絡(luò)協(xié)議支持進(jìn)行資源的下載,在這里對建立下載任務(wù)( Task)添加抽象方法 start、 stop、 resume 來建立任務(wù)。這樣做的好處就是軟件會(huì)有很好的擴(kuò)展性,通過對 Task 的繼承還可以產(chǎn)生支持不同協(xié)議的下載,比如 FTP 下載、 BT 下載、 EDonkey 下載等等。由軟件發(fā)送 HTTP 消息請求,然后服務(wù)器根據(jù)請求返回響應(yīng)消息。將緩存中存儲(chǔ)的數(shù)據(jù)最終存儲(chǔ)到目的存儲(chǔ)路徑。新建下載任務(wù)是是根據(jù)用戶下載需求來創(chuàng)建下載任務(wù)的功能, 用戶需要提供下載資源的 URL 地址、選擇存儲(chǔ)文件的路徑、用戶希望下載時(shí)的線程數(shù)、以及存儲(chǔ)時(shí)的文件名稱。其中選擇存儲(chǔ)文件的路徑可以通過單擊瀏覽按鈕來選擇存儲(chǔ)文件夾。刪除任務(wù)和清除文件就是對任務(wù)和以下載的文件。任務(wù)管理的結(jié)構(gòu)圖如圖 5 所示: 圖 5下載任務(wù)結(jié)構(gòu)圖 新建下載任務(wù)設(shè)計(jì)使用 SWT/JFace 中的對話框( Dialog)設(shè)計(jì)實(shí)現(xiàn),新建下載任務(wù)流程圖,如圖 6 所示: 圖 6新建下載任務(wù)流程圖 新建下載任務(wù)對話框的設(shè)計(jì)主要是根據(jù) JFace 中 Dialog 設(shè)計(jì)實(shí)現(xiàn),如圖 7 所任務(wù)管理界面 新建任務(wù)界面 填寫任務(wù)信息欄 是否符合 HTTP請求 開始完成下載 返回 HTTP 響應(yīng)信息 N Y 任務(wù)管理 新建下載任務(wù) 批量下載任務(wù) 退出任務(wù) 第 14 頁 共 25 頁 示: 圖 7 新建下載任務(wù)對話框 從對話框中可以看到下載任務(wù)的三個(gè)主要參數(shù): URL 地址、存儲(chǔ)目錄、以及選擇下載線程數(shù),在信息填寫完畢后按下確定按鈕就會(huì)對 NewHttpTask 建立實(shí)例開始進(jìn)行下載。 Composite panel = new Composite(posite, )。 (panelData)。 new Label(panel, ).setText(存儲(chǔ)目錄: )。 第 15 頁 共 25 頁 (new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){ final Shell shell = ().getActiveShell()。 (瀏覽文件夾 )。 (c:/download)。 if (dir != null) { (dir)。 } } })。 cmbThreadCounts = new Combo(panel, )。 createButton(parent, , 取消 , false)。 ? 根據(jù)下載線程數(shù)把文件分塊; ? 建立相應(yīng)線程進(jìn)行下載,并讀入; ? 將讀到的數(shù)據(jù)寫到指定路徑; 核心代碼如下: //建立連接 MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager()。 Client = new HttpClient(connectionManager)。 (false)。 //判斷資源是否支持多線程下載 if (statusCode == ){ String recentUrl = (Location).getValue()。 = new URL((), (), (), recentUrl)。 statusCode = (head)。 msg = Resource Content Length is + contentLength。 (msg)。 long chunk = contentLength / threadCounts。 long endPos。 i threadCounts。 if (i == threadCounts 1) {endPos = contentLength。 workers[i].start()。 //存儲(chǔ)文件 destination = new File(destination, new File(()).getName())。 另外,由于在新建任務(wù)欄中需要填入下載資源地址 URL,而 URL 地址經(jīng)常是一串很長的字符串,每次都手工復(fù)制、粘貼到下載軟件任務(wù)欄中顯然非常麻煩。這樣可以大大節(jié)省用戶的工作量。 TextTransfer textTransfer = ()。 URL url。 if(().equals()) return textData。 } 另外下載任務(wù)還提供批量下載任務(wù)。 如果是這樣的話就算是有自動(dòng)添加剪貼板的功能,仍然需要很大的工作量。批量下載任務(wù)欄中提供輸入地址中數(shù)字的上下限,從而自動(dòng)生成所有的 URL 地址。創(chuàng)建 DownloadListener 類,提供監(jiān)任務(wù)管理界面 新建批量任務(wù)界面 填寫任務(wù)信息欄 是否符合HTTP 請求 自動(dòng)生成 URL 地址 新建任務(wù)管理界面 生成 URL 自動(dòng)添 加到剪貼板 完成下載 N Y 第 19 頁 共 25 頁 聽進(jìn)度( onProgress)、得到當(dāng)前內(nèi)容長度( onGetContentLength)、 onReadChunk等一些方法。只要在 HttpTask類中實(shí)現(xiàn)監(jiān)聽就可以得到相應(yīng)的信息。 在“獲得當(dāng)前進(jìn)度”和“信息的更新”的方法模塊中都用到了“ synchronized”關(guān)鍵字修飾,這表示,當(dāng)一個(gè)線程 A 使用這些方法時(shí),其他線程想使用這些方法時(shí)就必須等待,直到線程 A 使用完這些方法。 //獲得下載速度 protected long puteSpeed(int size) { long now = ()。 long speed = size * 1000 / (slice == 0 ? 1 : slice)。} protected String getSpeed(long speed) { String units[] = {B/s, KB/s, MB/s}。 } else if (speed 1 20) { return speed / (1 10) + units[1]。 } //獲得剩余時(shí)間 protected String milliSecondsToStr(long milliSeconds) { long days = milliSeconds / 1000 / (24 * 60 * 60)。 long minutes = ((milliSeconds / 1000 % (24 * 60 * 60)) % (60 * 60)) / 60。} //獲得當(dāng)前進(jìn)度 public synchronized void onProgress(final String msg) { (msg)。 List taskLogger = ().getTaskLogger()。 if (index != 1 amp。 第 21 頁 共 25 頁 (index).getData() == ) { (msg)。 contentLength = len。 Display display = ().getShell().getDisplay()。 } })。 long speed = puteSpeed(size)。 final String speedStr = getSpeed(speed)。 final String timeElapsed = milliSecondsToStr(() startTime)。 lastTimeDataReceived = ()。 (new Runnable() { public void run() { (new String[]{ fname, 第 22 頁 共 25 頁 (contentLength), percent, speedStr, timeRemain, timeElapsed, fileType})。 } 在完成了監(jiān)聽后,只需要在下載過程中,添加實(shí)現(xiàn)監(jiān)聽機(jī)制就能夠完成對下載信息的監(jiān)視返回。 private DownloadListener listener。 } String msg = Starting to download URL: + ()。 (msg)。 msg = Resource Content Length is + contentLength。 (msg)。 } 結(jié) 論 隨著設(shè)計(jì)接近尾聲,我 所設(shè)計(jì)的多線程斷點(diǎn)續(xù)傳下 載軟件也初具規(guī)模,雖然還不是特別完善,但每一步的進(jìn)展都付出了我 的全部心思。系統(tǒng)由 下載分類管理、任務(wù)管理、設(shè)置管理、系統(tǒng)幫助四個(gè)主模塊構(gòu)成 。 程序 提供多線程斷點(diǎn)續(xù)傳功能,在完成下載過程中使用多線程技術(shù)可以較大幅度地提高下載的速度。 系統(tǒng)分析與設(shè)計(jì)過程,是對四年大學(xué)積 累下的知識總結(jié) 過程,更是進(jìn)一步學(xué)習(xí)和探索的過程。 這次的畢業(yè)設(shè)計(jì)也讓我清醒地認(rèn)識到自身還存在很多不足的地方,還需要不斷的努力來充實(shí)自己、完善自己,只有這樣才能學(xué)無止境,以求得更大的發(fā)展。在此向他表示我最衷心的感謝! 在論文完成過程中,本人還得到了李飛老師和 03 信 息安全 4 班同學(xué)的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 作者簡介: 姓 名:吳尚勇 性別:男 出生年月 : 1985 年 3 月 民族 : 漢 Email: 第 25 頁 共 25 頁 聲 明 本論文的工作是 2020 年 2 月至 2020 年 7 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。除非另有說明,本文的工作是原始性工作。 ( 2)學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制方式保存學(xué)位論文。 ( 4)學(xué)校可允許學(xué)位論文被查閱或借閱。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。 2. 計(jì)算機(jī)的分類 知識點(diǎn)應(yīng)該掌握: 三種分類方法( ① 計(jì)算機(jī)處理數(shù)據(jù)的方式: 電子數(shù)字計(jì)算機(jī)、電子模擬計(jì)算機(jī) ; ② 使用范圍: 通用計(jì)算機(jī)和專用計(jì)算機(jī) ; ③ 規(guī)模和處理能力: 巨型機(jī)、大小型機(jī)、小型機(jī)、微型機(jī)、工作站和服務(wù)器 )。 : ①科學(xué)計(jì)算; ②數(shù)據(jù)處理; ③自動(dòng)控制; ④計(jì)算機(jī)輔助( CAD(計(jì)算機(jī)輔助設(shè)計(jì) )、 CAM(計(jì)算機(jī)輔助制造 )、 CAE(計(jì)算機(jī)輔助工程)、 CIMS(計(jì)算機(jī)集成制造系統(tǒng))、 CAI(計(jì)算機(jī)輔助教學(xué) )、 AI(人工智能 )。 (數(shù)據(jù) — 指能夠?yàn)橛?jì)算機(jī)處理的數(shù)字化信息、信息 — 處理后的數(shù)據(jù)、信息處理 — 對信息進(jìn)行收集、傳輸、處理、存儲(chǔ)、發(fā)布等;信息系統(tǒng) — 是以提供信息服務(wù)為主要目的數(shù)據(jù)密集型、人機(jī)交互 的計(jì)算機(jī)應(yīng)用系統(tǒng) )。 A ENIAC B ENVAC C ENVAE D MAJK ,劃分的主要依據(jù)是( )。 A 第一代計(jì)算機(jī)的時(shí)代 B 第二代計(jì)算機(jī)的時(shí)代 C 第三代計(jì)算機(jī)的時(shí)代 D 第四代計(jì)算機(jī)的時(shí)代 ,可以分為( )。 A 數(shù)?;旌嫌?jì)算機(jī) B 電子模擬計(jì)算機(jī) C 通用計(jì)算機(jī) D 專用計(jì)算機(jī) 屬于電子數(shù)字計(jì)算機(jī)特點(diǎn)的是( )。 第 27 頁 共 25 頁 A. 基本素材 B. 處理后的數(shù)據(jù) C. 數(shù)值數(shù)據(jù) D. 非數(shù)值數(shù)據(jù) ( ) A 辦公自動(dòng)化 B AutoCAD C 專家系統(tǒng) D 天氣預(yù)報(bào) 分析本節(jié)可知,應(yīng)主要從 6 個(gè) 方面來熟悉和掌握 WINDOWS 涉及的要素。 ( 2) Windows 桌面的組成要素中熟練掌握用戶界面與外觀設(shè)計(jì)(桌面圖標(biāo)、“開始”按鈕、任務(wù)欄)等相關(guān)操作與設(shè)置。 ①文件 —— 文件是具有文件名的一組相關(guān)信息的集合,所有的程序和數(shù)據(jù)都是以文件的形式存放在計(jì)算機(jī)的外存儲(chǔ)器 (如:磁盤、光盤等 )上。 文件名通常由主文件名和擴(kuò)展名組成,中間以“ .”連接。 ②文件夾 —— Windows 使用多級目錄結(jié)構(gòu)來有效地組織和管理磁盤文件的目錄。由一個(gè)根目錄和若干層子文件夾組成的目錄結(jié)構(gòu)就稱為樹形目錄結(jié)構(gòu),它像一棵倒置的樹。每一個(gè)文件夾中允許同時(shí)存在若干個(gè)子文件夾和若干文件,不同文件夾中允許存在相同文件名的文件,任何一個(gè)文件夾的上一級文件稱為它的父文件夾, ③邏輯盤 —— 常 常將 每塊 硬 盤( 即硬 盤 實(shí)物 )稱 為物 理 盤 ,而將 在 硬盤 分 區(qū)之 后 所建 立的 具 有 “C : ” 或 “D : ” 等各 類 “ Drive/ 驅(qū)動(dòng)器 ” 稱 為邏 輯 盤 。 通常用戶當(dāng)前打開的、處于前臺讀寫數(shù)據(jù)操作的磁盤稱為當(dāng)前盤。這種確定文件在目錄結(jié)構(gòu)中位置的一組連續(xù)的、由路徑分隔符“ \”分隔的文件夾名叫路徑。描述文件或 文件夾的路徑有兩種方法:絕對路徑和相對路徑。而從當(dāng)前文件夾開始到文件所在文件夾的路徑稱為“相對路徑”。主要掌握應(yīng)用程序窗口、文檔窗口、文件夾窗口、對話窗口組成以及異同
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1