<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 8.8\. Channels(管道) 管道可以用于兩個goroutines之間的通訊。我們可以用管道傳遞任意類脂的變量。Go語言中管道是 廉價并且便捷的。 二元操作符 &lt;- 用于向管道發送數據。一元操作符&lt;- 用于從管道接收數據。在函數參數中,管道通過引用傳遞給函數。 雖然go語言的標準庫中提供了互斥的支持,但是我們也可以用一個單一的goroutine提供對變量的 共享操作。 例如,下面的函數用于管理對變量的讀寫操作。 ``` type cmd struct { get bool; val int } func manager(ch chan cmd) { var val int = 0 for { c := <- ch if c.get { c.val = val ch <- c } else { val = c.val } } } ``` 在這個例子中,管道被同時用于輸入和輸出。但是當多個goroutines對變量操作時可能導致 問題:對管道的讀操作可能讀到的是請求命令。解決的方法是將命令和數據分為不同的管道。 ``` type cmd2 struct { get bool; val int; ch <- chan int } func manager2(ch chan cmd2) { var val int = 0 for { c := <- ch if c.get { c.ch <- val } else { val = c.val } } } ``` 這里掩飾了如何使用manager2: ``` func f4(ch <- chan cmd2) int { myCh := make(chan int) c := cmd2{ true, 0, myCh } // Composite literal syntax. ch <- c return <-myCh } ```
                  <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>

                              哎呀哎呀视频在线观看