一、多線程和異步的異同
1、多線程和異步的相同:都可以解決線程阻塞,響應慢的問題。
2、多線程和異步的不同:
異步線程可以減少共享變量,減少死鎖可能,異步操作無須額外的線程負擔。但采用回調方式復雜度較高,切不易調試。
多線程程中的處理程序依然是順序執行,編程相對簡單而且易理解,但編程簡單本質上是進程中一段並發運行的代碼,需要操作系統投入CPU資源來運行和調度,
,線程的使用(濫用)會給系統帶來上下文切換的額外負擔。並且線程間的共享變量可能造成死鎖的出現。
二 使用場景
1、異步適用於IO操作(文件,網絡數據修改,數據庫操作、Web Service、HttpRequest以及.Net Remoting等跨進程的調用)
2、多線程適用於需要長時間CPU運算的場合(例如耗時較長的圖形處理和算法執行)
注意:可以使用線程來執行耗時較長的I/O操作。只適用於只有少數幾個並發操作的時候,如果需要處理大量的並發操作時就不合適。
