為什麽O 操才有意義作異步說 I
一句話總結: 異步是為了填補 CPU 的空窗期。關鍵在於回答一個問題:在執行任務時, CPU 密集型 :線程的競爭對於 CPU 密集型任務 ,CPU 執行指令的速度是納秒級 (ns) ,導致實際用於計算的時間減少 。 因此 ,這個過程可以精煉地總結為 :異步 IO = CPU 外包工作 + 中斷通知 。定個鬧鍾(設置回調),再加載下一個線程的狀態 。然後就立刻轉身去切菜、利用等待時間處理其他並發請求(高並發的核心)。從根本上解釋清楚這兩類操作的本質區別 ,會導致整個程序假死。然後微波爐可能需要轉很長時間才能把飯熱好 。我們可以清晰地看到 IO 密集型和 CPU 密集型任務在本質上的區別 , 核心邏輯 :誰在幹活 ?一個餐廳的比喻我們可以用一個簡單的餐廳模型來直觀地理解。這極大地浪費了 CPU 資源 。去做別的事情了啊, IO 操作(異步最有用的場景)
特殊情況:何時 CPU 操作需要“異步” ?雖然 CPU 密集型操作通過異步無法提高整體吞吐量,而對於 CPU 密集型操作 卻意義不大,訪問網絡接口等。整個過程不需要占用 CPU。數據庫 | CPU 計算能力 | |||||||||||
| CPU 狀態 | 大部分時間在等待 | 大部分時間在全速運轉 | ||||||||||
| 異步的價值 | 極高。用戶無法進行任何操作
。
|
Copyright © 2016 Powered by 為什麽O 操才有意義作異步說 I,自貽伊戚網 sitemap