<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 并行和并發 >并行,同一時刻,多條指令在多個處理器上同時執行 >并發,同一時刻只能執行一條指令,但是多個指令在這一條指令得基礎上交替執行。 ![](https://img.kancloud.cn/9c/12/9c1238beeff621ff9cd4e453e7034ceb_667x478.png) ### goroutine >每一個并發執行單元叫做goroutine(協程),調用方法 > **go 函數名 (函數參數)** >使用go關鍵詞就不能使用函數返回值來進行數據交換,只能使用channel(渠道) ``` package main import ( "fmt" "time" ) // 創建子線程 Task1 func Task1() { // for 循環間隔打印 for { fmt.Println(time.Now().Format("15:04:05"), "正在處理子線程Task1任務") // 間隔時間 time.Sleep(time.Second * 3) } } // 創建子線程 Task2 func Task2() { for { fmt.Println(time.Now().Format("15:04:05"), "正在處理子線程Task2任務") time.Sleep(time.Second * 1) } } // 主線程 func main() { // 執行兩個子線程 go Task1() go Task2() // 主線程任務 for { fmt.Println(time.Now().Format("15:04:05"), "正在處理主線程任務") time.Sleep(time.Second * 2) } } ``` ``` 15:36:51 正在處理主線程任務 15:36:51 正在處理子線程Task1任務 15:36:51 正在處理子線程Task2任務 15:36:52 正在處理子線程Task2任務 15:36:53 正在處理子線程Task2任務 ... ``` main函數內需要有一些代碼邏輯,否則就會報錯,或者就是跳出程序。 創建10個線程,這里有點像python ``` package main import ( "fmt" "time" ) func write(ints int) { fmt.Println("寫", ints) } func main() { for i := 0; i < 10; i++ { go write(i) } time.Sleep(time.Second * 5) } ``` ### 使用匿名函數創建goroutine ``` go func(參數列表) { 函數體 } (調用參數列表 ) ``` ``` package main import ( "fmt" "time" ) func main() { go func() { for { fmt.Println(time.Now().Format("2006-01-02 15:04:05"), "正在處理子線程任務1") time.Sleep(time.Second * 3) } }() go func() { for { fmt.Println(time.Now().Format("2006-01-02 15:04:05"), "正在處理子線程任務2") time.Sleep(time.Second * 1) } }() time.Sleep(time.Second * 100) } ```
                  <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>

                              哎呀哎呀视频在线观看