<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 前言 在web2.0的時候,其實前端就很熟悉異步編程了,只不過那時大家使用的是ajax(典型的網絡請求)實現的,還有一些前端的事件機制(針對事件定義回調事件)。 但是在傳統的高級編程中,異步編程很少被使用,因為大部分程序員不習慣異步編程來進行程序設計。而node是首個將異步作為主要編程方式和設計理念的編程語言。 與node事件驅動、異步io設計理念相近的是nginx,它具備向客戶端管理連接的巨大能力,但是其底層還是受制于各種同步的編程方式。而node是全方面的,既可以作為服務端去處理客戶端帶來的大量并發請求,也能作為客戶端去向網絡中的各個應用進行并發請求。 ## 為什么要異步 ### 用戶體驗 最早的瀏覽器中js是單線程的,獲取一個網絡資源需要同步獲取,如果有兩個請求,時間消耗分別為M,N,那么同步請求的時間則為兩者之和;而如果是異步,則是取較大者;另外一個明顯的區別就是同步會阻塞ui渲染,而異步不會。 在大時代背景下,越來越多的微服務是分布的,而隨著服務的增多這部分開銷會線型增長,也意味著放大同步和異步的性能差異。在下面的表格中,我們列舉了一些從cpu緩存到網絡的數據訪問所需要的開銷作為對比。 | io類型 | 花費時間周期 | | --- | --- | | cpu一級緩存 | 3 | | cpu二級緩存 |14 | | 內存 | 250 | | 硬盤 |41000000 | | 網絡 | 240000000 | ### 資源分配 場景:如果有若干不相干的任務需要完成,主要有兩種方式: 1 單線程順序執行 2 多線程并發完成 分析:針對兩種的優缺點進行簡要分析 | 實現方式 | 優點 |缺點 |其他 | | --- | --- | --- | --- | | 單線程順序執行 | 符合編程思維 | 性能不好,任何一個任務慢會導致其他阻塞,在計算機中,io和cpu計算可以并行進行的,但同步編程中的io會讓其他任務阻塞 | | | 多線程并發 | 更好的利用cpu |面臨鎖、狀態同步的問題 |前提是創建線程的開銷遠小于并行任務 | 為了彌補單線程無法利用多核cpu的缺點,node提供了類似web worker的子進程,子進程通過工作進程高效的利用cpu和io.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看