java多線程的同步和異步_第1頁
java多線程的同步和異步_第2頁
java多線程的同步和異步_第3頁
java多線程的同步和異步_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——java多線程的同步和異步j(luò)ava多線程的同步和異步

Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java技術(shù)具有卓越的通用性、高效性、平臺移植性和安好性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、嬉戲操縱臺、科學(xué)超級計(jì)算機(jī)、移動電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。java多線程的同步和異步下面就共享給大家,接待大家閱讀!

java多線程的同步和異步

多線程和異步操作的異同

多線程和異步操作兩者都可以達(dá)成制止調(diào)用線程阻塞的目的,從而提高軟件的可響應(yīng)性。甚至有些時(shí)候我們就認(rèn)為多線程和異步操作是等同的概念。但是,多線程和異步操作還是有一些識別的。而這些識別造成了使用多線程和異步操作的時(shí)機(jī)的識別。

異步操作的本質(zhì)

全體的程序最終都會由計(jì)算機(jī)硬件來執(zhí)行,所以為了更好的理解異步操作的本質(zhì),我們有必要了解一下它的硬件根基。熟諳電腦硬件的摯友斷定對DMA這個(gè)詞不目生,硬盤、光驅(qū)的技術(shù)規(guī)格中都有明確DMA的模式指標(biāo),其實(shí)網(wǎng)卡、聲卡、顯卡也是有DMA功能的。

DMA就是直接內(nèi)存訪問的意思,也就是說,擁有DMA功能的硬件在和內(nèi)存舉行數(shù)據(jù)交換的時(shí)候可以不消耗CPU資源。只要CPU在發(fā)起數(shù)據(jù)傳輸時(shí)發(fā)送一個(gè)指令,硬件就開頭自己和內(nèi)存交換數(shù)據(jù),在傳輸完成之后硬件會觸發(fā)一個(gè)中斷來通知操作完成。這些無須消耗CPU時(shí)間的I/O操作正是異步操作的硬件根基。所以即使在DOS這樣的單進(jìn)程(而且無線程概念)系統(tǒng)中也同樣可以發(fā)起異步的DMA操作。

線程的本質(zhì)

線程不是一個(gè)計(jì)算機(jī)硬件的功能,而是操作系統(tǒng)供給的一種規(guī)律功能,線程本質(zhì)上是進(jìn)程中一段并發(fā)運(yùn)行的代碼,所以線程需要操作系統(tǒng)投入CPU資源來運(yùn)行和調(diào)度。

異步操作的優(yōu)缺點(diǎn)

由于異步操作無須額外的線程負(fù)擔(dān),并且使用回調(diào)的方式舉行處理,在設(shè)計(jì)良好的處境下,處理函數(shù)可以不必使用共享變量(即使無法完全不用,最起碼可以裁減共享變量的數(shù)量),裁減了死鎖的可能。當(dāng)然異步操作也并非完備無暇。編寫異步操作的繁雜程度較高,程序主要使用回調(diào)方式舉行處理,與普遍人的思維方式有些初入,而且難以調(diào)試。

多線程的優(yōu)缺點(diǎn)

多線程的優(yōu)點(diǎn)很明顯,線程中的處理程序照舊是依次執(zhí)行,符合普遍人的思維習(xí)慣,所以編程簡樸。但是多線程的缺點(diǎn)也同樣明顯,線程的`使用(濫用)會給系統(tǒng)帶來上下文切換的額外負(fù)擔(dān)。并且線程間的共享變量可能造成死鎖的展現(xiàn)。

適用范圍

在了解了線程與異步操作各自的優(yōu)缺點(diǎn)之后,我們可以來探討一下線程和異步的合理用途。我認(rèn)為:當(dāng)需要執(zhí)行I/O操作時(shí),使用異步操作比使用線程+同步I/O操作更適合。I/O操作不僅包括了直接的文件、網(wǎng)絡(luò)的讀寫,還包括數(shù)據(jù)庫操作、WebService、HttpRequest以及.NetRemoting等跨進(jìn)程的調(diào)用。

而線程的適用范圍那么是那種需要長時(shí)間CPU運(yùn)算的場合,例如耗時(shí)較長的圖形處理和算法執(zhí)行。但是往往由于使用線程編程的簡樸和符合習(xí)慣,所以好多摯友往往會使用線程來執(zhí)行耗時(shí)較長的I/O操作。這樣在只有少數(shù)幾個(gè)并發(fā)操作的時(shí)候還無傷大雅,假設(shè)需要處理大量的并發(fā)操作時(shí)就不適合了。

線程同步與異步識別

線程同步:是多個(gè)線程同時(shí)訪問同一資源,等待資源訪問終止,濫用時(shí)間,效率低

線程異步:訪問資源時(shí)在空閑等待時(shí)同時(shí)訪問其他資源,實(shí)現(xiàn)多線程機(jī)制

異步處理就是,你現(xiàn)在問我問題,我可以不回復(fù)你,等我有時(shí)間了再處理你這個(gè)問

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論