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

正文內(nèi)容

java論文java多線程與線程安全實踐-基于http協(xié)議的斷點續(xù)傳-資料下載頁

2024-11-16 17:12本頁面

【導讀】現(xiàn)實世界中的很多過程都具有多條線索同時動作的特性。特性就是內(nèi)置對多線程的支持。多線程是指同時存在幾個執(zhí)行體,按幾條不同。功能、能同時處理多個任務的功能強大的應用程序。一些同時運行的線程需要。行為,這就是線程安全的問題。為了對Java多線程與線程安全機制進行研究與。實踐,特此設計一個基于Http協(xié)議的支持多線程斷點續(xù)傳的下載程序。程序由下載任務模塊、設置模塊以及系統(tǒng)幫助模塊組成。程序提供多線程斷點續(xù)傳功能,在完成下載過程中使用多線程技術(shù)可以。較大幅度地提高下載的速度。

  

【正文】 監(jiān)控下載信息主要是為用戶提供文件下載時的相應返回信息,方便用戶使用時能夠清楚地知道下載文件當前運行的狀況。創(chuàng)建 DownloadListener 類,提供監(jiān)任務管理界面 新建批量任務界面 填寫任務信息欄 是否符合HTTP 請求 自動生成 URL 地址 新建任務管理界面 生成 URL 自動添加到剪貼板 完成下載 N Y 第 19 頁 共 25 頁 聽進度( onProgress)、得到當前內(nèi)容長度( onGetContentLength)、 onReadChunk等一些方法。分別在命令行參數(shù)執(zhí)行和用戶圖形界面中分別繼承DownloadListener 的方法。只要在 HttpTask類中實現(xiàn)監(jiān)聽就可以得到相應的信息。監(jiān)控下載信息類圖如下: 圖 11 批量下載任務對話框 監(jiān)控下載信息順序圖 根據(jù)下載監(jiān)聽活動描述下載信息監(jiān)聽順序圖: 圖 12 監(jiān)聽下載信息順序圖 監(jiān)控下載信息實現(xiàn) 要實現(xiàn)對下載文件信息的 監(jiān)控需要先在 用戶界面中添加監(jiān)聽機制 ,需要監(jiān)視 第 20 頁 共 25 頁 的內(nèi)容主要包括:下載文件的文件名、下載文件的大小、下載任務進行的進度(完成的百分比)、下載任務的即時速度、剩余時間、已用時間和文件類型。 在“獲得當前進度”和“信息的更新”的方法模塊中都用到了“ synchronized”關(guān)鍵字 修飾 , 這表示,當一個線程 A 使用這些方法時,其他線程想使用這些方法時就必須等待,直到線程 A 使用完這些方法。 這樣的話就有效地保證了這些線程的共享數(shù)據(jù)的一致性,從而也就保證了程序的正確性,保證了對共享數(shù)據(jù)操作的完整性,即 實現(xiàn) 了 不同線程對共享數(shù)據(jù)操作的同步 ,這是 線程安全的核心問題,在這里得到了很好的體現(xiàn)。 //獲得下載速度 protected long puteSpeed(int size) { long now = ()。 long slice = now lastTimeDataReceived。 long speed = size * 1000 / (slice == 0 ? 1 : slice)。 return speed。} protected String getSpeed(long speed) { String units[] = {B/s, KB/s, MB/s}。 if (speed 1 10) { return speed + units[0]。 } else if (speed 1 20) { return speed / (1 10) + units[1]。} return speed / (1 20) + units[2]。 } //獲得剩余時間 protected String milliSecondsToStr(long milliSeconds) { long days = milliSeconds / 1000 / (24 * 60 * 60)。 long hours = (milliSeconds / 1000 % (24 * 60 * 60)) / (60 * 60)。 long minutes = ((milliSeconds / 1000 % (24 * 60 * 60)) % (60 * 60)) / 60。 long seconds = milliSeconds / 1000 % 60。} //獲得當前進度 public synchronized void onProgress(final String msg) { (msg)。 ().getShell().getDisplay().syncExec( new Runnable() { public void run() { Table tasksTable = ().getTasksTable()。 List taskLogger = ().getTaskLogger()。 int index = ()。 if (index != 1 amp。amp。 第 21 頁 共 25 頁 (index).getData() == ) { (msg)。 }}} //在任務剛建立時信息的初始化 public void onGetContentLength(final String fname, long len) { = fname。 contentLength = len。 lastTimeDataReceived = ()。 Display display = ().getShell().getDisplay()。 (new Runnable() { public void run() { (new String[]{ fname, (contentLength), 0%, , , , })。 } })。 } //信息的更新 public synchronized void onReadChunk(String name, int size) { pleted += size。 long speed = puteSpeed(size)。 final String percent = (pleted * 100 / contentLength)。 final String speedStr = getSpeed(speed)。 final String timeRemain = milliSecondsToStr((contentLength pleted) / speed * 1000)。 final String timeElapsed = milliSecondsToStr(() startTime)。 final String fileType = 。 lastTimeDataReceived = ()。 Display display = ().getShell().getDisplay()。 (new Runnable() { public void run() { (new String[]{ fname, 第 22 頁 共 25 頁 (contentLength), percent, speedStr, timeRemain, timeElapsed, fileType})。 } })。 } 在完成了監(jiān)聽后,只需要在下載過程中,添加實現(xiàn)監(jiān)聽機制就能夠完成對下載信息的監(jiān)視返回。 //添加監(jiān)聽 private static final Log logger = ()。 private DownloadListener listener。 public void addDownloadListener(DownloadListener listener) { = listener。 } String msg = Starting to download URL: + ()。 (msg)。 (msg)。 try { contentLength = getResourceContentLen()。 msg = Resource Content Length is + contentLength。 (msg)。 (msg)。 ((), contentLength)。 } 結(jié) 論 隨著設計接近尾聲,我 所設計的多線程斷點續(xù)傳下 載軟件也初具規(guī)模,雖然還不是特別完善,但每一步的進展都付出了我 的全部心思。 總體說來有以下一些成果:使用 Java 多線程技術(shù)編寫出了一個時下流行的基于 Http 協(xié)議的多線程斷點續(xù)傳程序。系統(tǒng)由 下載分類管理、任務管理、設置管理、系統(tǒng)幫助四個主模塊構(gòu)成 。 通過 Apache Jakarta Commons 下的子項目 HttpClient 包對 Http 協(xié)議進行支持,從而下載服務器端的資源。 程序 提供多線程斷點續(xù)傳功能,在完成下載過程中使用多線程技術(shù)可以較大幅度地提高下載的速度。 通過這次畢業(yè)設計,我基本達到了當初設下的一些目標: 學習掌握了 JAVA中線程的生命周期及狀態(tài)遷移、掌握線程的調(diào)度策略、 第 23 頁 共 25 頁 線程優(yōu)先級和線程同步等基本知識; 了解了 協(xié)議的基本知識; 學習、研究了斷點續(xù)傳的基本原理; 設計、實現(xiàn)了一個下載工具,能在互聯(lián)網(wǎng)上分段下載軟件,并支持斷點續(xù)傳的特性。 系統(tǒng)分析與設計過程,是對四年大學積 累下 的知識總結(jié)過程,更是進一步學習和探索的過程。在這個過程中,我對面向?qū)ο蟪绦蛟O計、有了深刻的認識,對Java 語言和 SWT 技術(shù)有了進一步的掌握和了解,對系統(tǒng)的分析與設計過程有了切身的認識和體會,并在學習和實踐過程中增長了知識、豐富了 編程 經(jīng)驗。 這次的畢業(yè)設計也讓我清醒地認識到自身還存在很多不足的地方,還需要不斷的努力來充實自己、完善自己,只有這樣才能學無止境,以求得更大的發(fā)展。 參考文獻 [1] 耿祥義,張躍平 .JAVA 2實用教程 (第二 版 )[M].北京 :清華大學出版社 ,2020. [2] 霍爾澤 .Eclipse集成開發(fā)工具 [M].南京: 東南大學出版社, 2020. [3] 張桂元,賈燕楓 .Eclipse開發(fā)入門與項目實踐 [M].北京: 人民郵電出版社, 2020. [4] 葉達峰 .Eclipse編程技術(shù)與實例 [M].北京: 人民郵電出版社, 2020. [5] 陳剛 .Eclipse從入門到精通 [M].北京: 清華大學出版社, 2020. [6] Hughes, Shoffner, Hamner, Java網(wǎng)絡編 程 技術(shù)內(nèi)幕 [M].北京: 國防工業(yè)出版社, 2020. [7] Horstmann, I:基礎知識 [M].北京:機械工業(yè)出版社, 2020. [8] Bruce 編程思想 [M].北京:機械工業(yè)出版社, 2020. [9] 劉亞賓,楊紅 .精通 Eclipse[M]. 北京 : 電子工業(yè)出版社, 2020. 計算機專業(yè)畢業(yè)設計開發(fā)環(huán)境 : , VB, VF, java 等 ,數(shù)據(jù)庫: SQL。包括 :開題報告、程序、論文、答辯 PPT,所有程序都是通過答辯的優(yōu)秀作品,質(zhì)量保證。也可代做。 我是哈爾濱工業(yè)大學計算 機專業(yè)畢業(yè)的學生我賣的畢業(yè)設計都是新做出來的而且是學生親手做的符合 第 24 頁 共 25 頁 學生要求如果你在別的店賣來的都是很專業(yè)的人員做的一看就不是學生自己親手做出來的,而且其他店不提供售后我們提供售后服務及技術(shù)支持和答辯技巧 . Q Q: 982465840 旺旺:誠信源代碼之家 電話: 13836381662 店鋪地址: 全天在線 各位學弟學妹聯(lián)系我 . 本店購設計的優(yōu)點 : 1 價格合理便宜 2 提供技術(shù)支持 3 售后服務好 4 成交速 度快當時就可以完成調(diào)試功能 5 東西齊全 (開題論文代碼程序答辯 PPT售后服務 ) 6 作品都是獲得優(yōu)秀的產(chǎn)品 (保證質(zhì)量 ) 第 25 頁 共 25 頁 致 謝 本文是在 何林波 老師的熱情關(guān)心和指導下完成的,他淵博的知識和嚴謹?shù)闹螌W作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝! 在論文完成過程中,本人還得到了 李飛 老師和 03 信息安全 4 班 同學的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評審本文的各位專家 、 老師表示 衷心的感謝!
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1