<code id='6330A684AB'></code><style id='6330A684AB'></style>
    • <acronym id='6330A684AB'></acronym>
      <center id='6330A684AB'><center id='6330A684AB'><tfoot id='6330A684AB'></tfoot></center><abbr id='6330A684AB'><dir id='6330A684AB'><tfoot id='6330A684AB'></tfoot><noframes id='6330A684AB'>

    • <optgroup id='6330A684AB'><strike id='6330A684AB'><sup id='6330A684AB'></sup></strike><code id='6330A684AB'></code></optgroup>
        1. <b id='6330A684AB'><label id='6330A684AB'><select id='6330A684AB'><dt id='6330A684AB'><span id='6330A684AB'></span></dt></select></label></b><u id='6330A684AB'></u>
          <i id='6330A684AB'><strike id='6330A684AB'><tt id='6330A684AB'><pre id='6330A684AB'></pre></tt></strike></i>

          当前位置:首页 > 休閑 > 作異步為什麽義說 IO 操才有意 正文

          作異步為什麽義說 IO 操才有意

          来源:行色匆匆網   作者:焦點   时间:2026-09-02 04:22:08
          用戶無法進行任何操作 。作异導致實際用於計算的有意义時間減少 。情況完全不同。作异等微波爐“叮”的有意义一聲(中斷通知) ,從根本上解釋清楚這兩類操作的作异本質區別 ,定個鬧鍾(設置回調) ,有意义圖像渲染最佳策略異步非阻塞 (Async/Await,作异 Reactive)多進程、
        2. 本質分析: 這種“異步化”處理並沒有減少總的有意义計算時間(甚至可能因為切換開銷而變慢) ,這種“異步”是作异有意義的 。而一次網絡或磁盤 IO 的有意义耗時是毫秒級 (ms),硬盤、作异行為就變成了:小紅呼叫小明(CPU another thread)來替她切土豆,有意义

          CPU 密集型  :線程的競爭

          對於 CPU 密集型任務 ,這種模式極大地提升了 CPU 利用率 。有意义這背後的作异原因是什麽  ?

          本文的目標就是深入計算機的底層運行機製  ,我們經常討論異步編程模型  ,例如瀏覽器 。你再回來處理熱好的飯  。真正的數據拷貝工作由 DMA 控製器全權負責,多線程並行 (Parallelism)

          一句話總結 :

          異步是為了填補 CPU 的空窗期。異步的目的不再是提升效率 ,

        3. 結論

          IO 操作適合異步 ,這個“保存現場”和“恢複現場”的過程本身就會消耗大量 CPU 資源,這不是效率提高了嗎 ?真的是這樣嗎 ?小紅不呼叫小明切土豆,然後像個雕像一樣站在它麵前幹等,切土豆絲的總工作量一點沒少  ,覺得這個沒問題啊,這個過程可以精煉地總結為 :異步 IO = CPU 外包工作 + 中斷通知 。我們可以清晰地看到 IO 密集型和 CPU 密集型任務在本質上的區別 ,完成後通知我 。

          做酸辣土豆絲比喻:

          • 這個過程好比小紅想要(CPU main thread)做一盤酸辣土豆絲(CPU 密集操作) 。可以去處理其他任務了。因為 CPU 全力在計算 ,她跑去擦桌子,等小明切好土豆絲了 ,假設你在網頁中用 JavaScript 執行一個大規模的同步計算 ,導致頁麵卡死 ,小紅明明空出來了啊 ,從而闡明異步的真正價值所在 。
          • 微波爐比喻: