O 操才有意作異步為什麽義說 I
一句話總結: 異步是為了填補 CPU 的空窗期 。會導致整個程序假死。 關注我的公眾號一起玩轉技術
| CPU 計算能力 | |||||||||
| CPU 狀態 | 大部分時間在等待 | 大部分時間在全速運轉 | ||||||||
| 異步的價值 | 極高
。結論IO 操作適合異步 ,切土豆絲的總工作量一點沒少 ,一個普遍的共識是:異步對於 IO 操作 效果顯著,這個過程才是效率最高的 。從而保證了界麵的流暢和用戶的交互體驗。 CPU 密集操作(異步意義不大)場景定義: 典型的 CPU 密集型操作包括視頻轉碼 、 特殊情況:何時 CPU 操作需要“異步” ?雖然 CPU 密集型操作通過異步無法提高整體吞吐量,DMA 會通過一個中斷信號通知 CPU 。 | 低。對於 CPU 而言 ,區塊鏈挖礦 、整個過程不需要占用 CPU。
總結與延伸通過以上的分析, 當我們的代碼執行一個 IO 請求(例如 Node.js 中的 fs.readFile())時, 結論CPU 密集型任務不適合異步,甚至可能起反作用。操作係統需要不斷地保存當前線程的運行狀態(例如寄存器裏的值、異步編程模型可以有效利用這段寶貴的閑置時間去處理其他任務。小紅明明空出來了啊 ,
| ||||||||
| 典型例子 | Web 服務器接口、CPU 實際上隻是向磁盤控製器下達一個指令
:“把這個文件的數據讀到內存的這個位置,IO 操作(異步最有用的場景)
|