既然有了多執行緒為什麼還需要非同步
非同步 並不意味者多執行緒,單執行緒同樣可以非同步
非同步預設藉助執行緒池
多執行緒經常阻塞,二非同步要求不阻塞
多執行緒與非同步的使用場景不同
多執行緒:
適合CPU 密集型操作 適合長期執行任務 執行緒的建立與開銷較大 提供更底層的控制,操作執行緒,鎖訊號量 執行緒不易與傳參及返回 執行緒的程式碼書寫繁瑣
非同步:
適合IO 密集型操作 適合短暫的小任務 避免執行緒阻塞,提高系統的響應能力
--------------------------------
什麼是非同步任務(Task)
1.非同步任務的各種狀態
1.1正在執行,完成,結果,報錯等
Created -- WaitingToRun -- Running -- RanToCompletion / WaitingForActivation WaitingForChildrenToComplete Canceled Faulted
1.2 ValueTask 值型別版本