異步操作的使用場景


在看MVC示例工程看到有一些action使用了async action異步方法,但並不是所有actio都是異步的,我查閱了一些資料,總結了異步操作的使用場景,如有錯誤,請不吝賜教。

我們采用異步的方式來處理這樣的耗時請求,工作線程可以讓后台線程來接手,自己可以及時地被釋放到線程池中用於進行后續請求的處理,從而提高了整個服務器的吞吐能力。值得一提的是,異步操作主要用於I/O綁定操作(比如數據庫訪問和遠程服務調用等),而非CPU綁定操作,因為異步操作對整體性能的提升來源於:當I/O設備在處理某個任務的時候,CPU可以釋放出來處理另一個任務。如果耗時操作主要依賴於本機CPU的運算,采用異步方法反而會因為線程調度和線程上下文的切換而影響整體的性能。
IO操作:磁盤數據的讀寫。包括文件讀寫(字節流,緩沖區等)、網絡請求(基於socket的請求、比如數據庫連接,第三方服務API調用)。
cpu操作:系統計算。
示例場景: 數據輪訓,登錄注冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM