前言
本人學(xué)習(xí).Net兩年有余,是第一次寫博客,雖然寫的很認真,當畢竟是第一次,肯定會有很多不足之處,
希望大家照顧照顧新人,有錯誤之處可以指出來,我會虛心接受的。
何謂異步
與同步相對應(yīng),異步指的是讓CPU暫時擱置當前請求的響應(yīng),處理下一個請求,當通過輪詢或其他方式得到回調(diào)通知后,
開始運行。多線程將異步操作放入另一線程中運行,通過輪詢或回調(diào)方法得到完成通知,但是完成端口,由操作系統(tǒng)接管
異步操作的調(diào)度,通過硬件中斷,在完成時觸發(fā)回調(diào)方法,此方式不需要占用額外線程。異步編程正在被使用的的越來越多,主要就是解決處理并發(fā)方面;那什么是并發(fā)呢?并發(fā)指的就是某個時間段,多個用戶同時訪問
造成的阻塞現(xiàn)象。很多人都有個誤解,覺得異步編程能縮短我們處理某個任務(wù)的時間,其實并沒有.
異步與多線程的異同點
兩者都可以達到避免調(diào)用線程阻塞的目的,異步使用的是線程池中的線程,沒有額外的線程負擔,
并且使用回調(diào)的方式進行處理,與普通人的思維方式有些出入,而且難以調(diào)試。多線程的處理方式
依然是順序執(zhí)行,符合常人的思維方式,所以編程較簡單,但會帶來額外的線程負擔,并且線程間
的共享變量可能會造成死鎖的出現(xiàn)。而且線程也是對象也需要占用內(nèi)存,因此線程月多占用內(nèi)存也
越多,多線程能縮短某個處理任務(wù)的時間,異步編程則不能。
理解多線程
在某個時間段,也許我們想縮短我們處理某個任務(wù)的時間,這個時候絕不是使用
異步,而是使用多線