前言

本節(jié)主要介紹異步編程中Task、Async和Await的基礎知識。

什么是異步?

異步處理不用阻塞當前線程來等待處理完成,而是允許后續(xù)操作,直至其它線程將處理完成,并回調通知此線程。

異步和多線程

相同點:避免調用線程阻塞,從而提高軟件的可響應性。

不同點:

異步操作無須額外的線程負擔,并且使用回調的方式進行處理,在設計良好的情況下,處理函數可以不必使用共享變量(即使無法完全不用,最起碼可以減少 共享變量的數量),減少了死鎖的可能。C#5.0 .NET4.5 以后關鍵字Async和Await的使用,使得異步編程變得異常簡單。

多線程中的處理程序依然是順序執(zhí)行,但是多線程的缺點也同樣明顯,線程的使用(濫用)會給系統(tǒng)帶來上下文切換的額外負擔。并且線程間的共享變量可能造成死鎖的出現。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式