<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                就像我們在"Goroutines"章節中提到了,Go語言會幫你處理goroutine到系統線程上。它使用的算法被稱為工作竊取策略(work stealing strategy)。這是什么意思? 首先,讓我們看看在許多處理器之間共享工作的天然策略,有時稱為公平調度。為了確保所有處理器的平均利用率,我們可以在所有可用處理器之間平均分配負載。想象一下,有n個處理器和x個任務需要執行。在公平調度策略中,每個處理器都會得到x/n個任務: ``` <Schedule Task 1> <Schedule Task 2> <Schedule Task 3> <Schedule Task 4> ``` :-: ![](https://box.kancloud.cn/cd732c09b6cde622206c15d68017e78a_332x189.png) 不幸的是,這種方法存在問題。 如果你還記得“Goroutines”章節中我們提到Go使用fork-join模型來并發建模。在fork-join范例中,任務可能依賴于另一個,并且事實證明,在處理器之間分裂它們可能會導致其中一個處理器未充分利用。不僅如此,它還可能導致局部性緩存較差,因為在其他處理器上調度需要相同的數據任務。我們來看一個例子。 考慮一個程序,可以產生前面所述的工作分配。 如果第2項任務比第1項和第3項結合需要更長的時間,會發生什么? :-: ![](https://box.kancloud.cn/4a87f72fa6430c6f7ab2cced47f61b37_584x119.jpg) 無論a和b之間的時間有多久,處理器一會閑置。 如果任務之間存在相互依存關系,如果分配給一個處理器的任務需要分配給另一個處理器的任務的結果,會發生什么情況? 例如,如果任務一依賴任務4呢? ![](https://box.kancloud.cn/988a6ddff4447aed35c9dec0193a1dd6_583x182.jpg) 在這種情況下,處理器1完全空閑,而任務2和4正在計算中。 雖然處理器1在任務1中被阻塞,處理器2在任務2中被占用,但處理器1可能已經在處理任務4以解除其自身阻塞。 * * * * * 學識淺薄,錯誤在所難免。我是長風,歡迎來Golang中國的群(211938256)就本書提出修改意見。
                  <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>

                              哎呀哎呀视频在线观看