文章出處

寫過很多篇異步,線程,并行的文章了,我覺得有必要總結一下了,然后把目錄整理一下,分享給大家,這么大家看的時候方便些!

非阻塞

異步操作無須額外的線程負擔,并且使用回調的方式進行處理,在設計良好的情況下,處理函數可以不必使用共享變量(即使無法完全不用,最起碼可以減少 共享變量的數量),減少了死鎖的可能。當然異步操作也并非完美無暇。編寫異步操作的復雜程度較高,程序主要使用回調方式進行處理,與普通人的思維方式有些 出入,而且難以調試。當需要執行I/O操作時,使用異步操作比使用線程+同步 I/O操作更合適。異步和多線程兩者都可以達到避免調用線程阻塞的目的,從而提高軟件的可響應性。

異步本質為方法的回調

異步操作無須額外的線程負擔,并且使用回調的方式進行處理,在設計良好的情況下,處理函數可以不必使用共享變量(即使無法完全不用,最起碼可以減少 共享變量的數量),減少了死鎖的可能。當然異步操作也并非完美無暇。編寫異步操作的復雜程度較高,程序主要使用回調方式進行處理,與普通人的思維方式有些 出入,而且難以調試。當需要執行I/O操作時,使用異步操作比使用線程+同步 I/O操作更合適。

線程爭奪與死鎖

多線程中的處理程序依然是順序執行,符合普通人的思維習慣,所以編程簡單。但是多線程的缺點也同樣明顯,線程的使用(濫用)會給系統帶來上下文切換的額外 負擔。并且線程間的共享變量可能造成死鎖的出現。多線程的適用范圍則是那種需要長時間CPU運算的場合,例如耗時較長的圖形處理和算法執行。

異步與并行-目錄

C#~異步編程

C#~異步編程續~.net4.5主推的await&async應用

EF架構~EF異步改造之路~倉儲接口的改造

EF架構~EF異步改造之路~讓DbContextRepository去實現異步接口

EF架構~EF異步改造之路~倉儲接口的改造~續

基礎才是重中之重~多線程的代價~我的內存都被吃了!

C#~異步編程再續~async異步方法與同步方法的并行

C#~異步編程再續~await與async引起的w3wp.exe崩潰

C#~異步編程再續~await與async引起的w3wp.exe崩潰-問題友好的解決

C#~異步編程再續~大叔所理解的并行編程(Task&Parallel)(最新2016-05-27日發布)

異步與并行~ReaderWriterLockSlim實現的共享鎖和互斥鎖

大叔也說并行和串行`性能提升N倍(N由操作系統位數和cpu核數決定)

異步與并行~List<T>是線程安全的嗎?

異步與并行~CancellationTokenSource對線程的作用

 異步與線程阻塞

永久更新中...


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()