一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

java多線(xiàn)程的同步和異步

時(shí)間:2025-02-02 07:00:23 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

java多線(xiàn)程的同步和異步

  Java是一種可以撰寫(xiě)跨平臺應用軟件的面向對象的程序設計語(yǔ)言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、游戲控制臺、科學(xué)超級計算機、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。java多線(xiàn)程的同步和異步下面就分享給大家,歡迎大家閱讀!

java多線(xiàn)程的同步和異步

  多線(xiàn)程和異步操作的異同

  多線(xiàn)程和異步操作兩者都可以達到避免調用線(xiàn)程阻塞的目的,從而提高軟件的可響應性。甚至有些時(shí)候我們就認為多線(xiàn)程和異步操作是等同的概念。但是,多線(xiàn)程和異步操作還是有一些區別的。而這些區別造成了使用多線(xiàn)程和異步操作的時(shí)機的區別。

  異步操作的本質(zhì)

  所有的程序最終都會(huì )由計算機硬件來(lái)執行,所以為了更好的理解異步操作的本質(zhì),我們有必要了解一下它的硬件基礎。 熟悉電腦硬件的朋友肯定對DMA這個(gè)詞不陌生,硬盤(pán)、光驅的技術(shù)規格中都有明確DMA的模式指標,其實(shí)網(wǎng)卡、聲卡、顯卡也是有DMA功能的。

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

  線(xiàn)程的本質(zhì)

  線(xiàn)程不是一個(gè)計算機硬件的功能,而是操作系統提供的一種邏輯功能,線(xiàn)程本質(zhì)上是進(jìn)程中一段并發(fā)運行的代碼,所以線(xiàn)程需要操作系統投入CPU資源來(lái)運行和調度。

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

  因為異步操作無(wú)須額外的線(xiàn)程負擔,并且使用回調的方式進(jìn)行處理,在設計良好的情況下,處理函數可以不必使用共享變量(即使無(wú)法完全不用,最起碼可以減少共享變量的數量),減少了死鎖的可能。當然異步操作也并非完美無(wú)暇。編寫(xiě)異步操作的復雜程度較高,程序主要使用回調方式進(jìn)行處理,與普通人的思維方式有些初入,而且難以調試。

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

  多線(xiàn)程的優(yōu)點(diǎn)很明顯,線(xiàn)程中的處理程序依然是順序執行,符合普通人的思維習慣,所以編程簡(jiǎn)單。但是多線(xiàn)程的缺點(diǎn)也同樣明顯,線(xiàn)程的使用(濫用)會(huì )給系統帶來(lái)上下文切換的額外負擔。并且線(xiàn)程間的`共享變量可能造成死鎖的出現。

  適用范圍

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

  而線(xiàn)程的適用范圍則是那種需要長(cháng)時(shí)間CPU運算的場(chǎng)合,例如耗時(shí)較長(cháng)的圖形處理和算法執行。但是往往由于使用線(xiàn)程編程的簡(jiǎn)單和符合習慣,所以很多朋友往往會(huì )使用線(xiàn)程來(lái)執行耗時(shí)較長(cháng)的I/O操作。這樣在只有少數幾個(gè)并發(fā)操作的時(shí)候還無(wú)傷大雅,如果需要處理大量的并發(fā)操作時(shí)就不合適了。

  線(xiàn)程同步與異步區別

  線(xiàn)程同步:是多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)同一資源,等待資源訪(fǎng)問(wèn)結束,浪費時(shí)間,效率低

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

  異步處理就是,你現在問(wèn)我問(wèn)題,我可以不回答你,等我有時(shí)間了再處理你這個(gè)問(wèn)題.同步不就反之了,同步信息被立即處理 -- 直到信息處理完成才返回消息句柄;異步信息收到后將在后臺處理一段時(shí)間 -- 而早在信息處理結束前就返回消息句柄

【java多線(xiàn)程的同步和異步】相關(guān)文章:

java多線(xiàn)程同步塊實(shí)例講解素材08-28

java的多線(xiàn)程09-09

java多線(xiàn)程08-31

Java多線(xiàn)程的定義狀態(tài)和屬性08-23

java語(yǔ)言的多線(xiàn)程08-29

java多線(xiàn)程介紹08-23

java多線(xiàn)程教程11-03

如何使用java多線(xiàn)程08-23

Java多線(xiàn)程問(wèn)題總結10-24

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看