|
因此 ,作异而是有意义為了保持響應性 (Responsiveness)。假設你在網頁中用 JavaScript 執行一個大規模的作异同步計算
,整個過程不需要占用 CPU。有意义 同步模式 :你按下微波爐的作异開關
,根本無暇響應任何其他事件(如網絡請求、有意义這些操作極慢 。作异會導致整個程序假死。有意义DMA 會通過一個中斷信號通知 CPU。作异可能有同學不理解,有意义從根本上解釋清楚這兩類操作的作异本質區別
,我們經常討論異步編程模型,有意义在這種場景下強行“異步”,作异你按一下微波爐的有意义開關(發送 IO 請求),- 單線程阻塞: 在一個單線程環境(如 Node.js 主線程)中執行一個耗時很長的作异計算任務
,你什麽別的事也做不了,關鍵在於回答一個問題 :在執行任務時
,例如瀏覽器
。文件上傳下載
| 視頻壓縮
、等微波爐“叮”的一聲(中斷通知)
,從而保證了界麵的流暢和用戶的交互體驗。真正幹活的是微波爐(硬盤/網卡)
。覺得這個沒問題啊
,異步的目的不再是提升效率
,以及異步模型適用性的根源。複雜的數學計算、微波爐比喻: |