日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Go 知识点(01)— 主协程与子协程执行顺序

發布時間:2023/11/28 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 知识点(01)— 主协程与子协程执行顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面代碼的輸出結果是什么?

package mainimport ("fmt"
)func main() {for i := 0; i < 10; i++ {go func() {fmt.Println(i)}()}
}

運行該代碼輸出的結果是什么? 可能有以下答案

  1. 大概率什么都沒有輸出

原因是: 只要主協程也就是 main 進程執行完畢,其它的 Go 協程就會立即結束,主協程也就是 Go 程序是不會等待其它 Go 協程的,
而此時由于 for 循環啟動的 Go 協程完全有可能還有運行,從而導致任何沒有輸出任何內容。

  1. 小概率有可能是 10 個 10

原因是: 假如 for 循壞啟動的 10 個 協程在 main 協程執行完畢之前已運行,由于協程的調度需要一定的時間,而通常這個時間是大于
for 循壞的時間的,所以等 10 個協程啟動的時候,for 循環已經執行到最后的變量 i=10 了,所以就會打印 10 個 10。

  1. 小概率有可能是亂序的 1 到 9 等

原因: 如果 Go 協程啟動的時間較快,在 for 循環每執行到一個變量時該協程就會立即啟動,那么就會打印 1 到 9 不等,最終原因
還是與 Go 協程的調度機制有關。

那么問題來了,如果想要讓子協程執行完畢后退出,有什么辦法呢?

我們可以使用 sync.WaitGroup 來實現,請看下面代碼

func main() {var wg sync.WaitGroupfor i := 0; i < 10; i++ {wg.Add(1) // 每啟動一個協程就加 1go func() {defer wg.Done() // 協程退出時自動減 1fmt.Println(i)}()}wg.Wait() // 等待所有協程執行完畢
}

輸出結果為:

10
10
10
10
10
10
10
10
10
10

如果想要讓其打印出 0,1,2,3,4 … 等,需要怎樣修改代碼呢?

只需要在調用協程函數的時候傳入對應的變量就行,如下代碼:

func main() {var wg sync.WaitGroupfor i := 0; i < 10; i++ {wg.Add(1)go func(n int) {defer wg.Done()fmt.Println(n)}(i) // 傳入外面循環變量的值}wg.Wait()
}

參考:
https://mp.weixin.qq.com/s/gqqAazWUCp1ZtK7PebJe3g

總結

以上是生活随笔為你收集整理的Go 知识点(01)— 主协程与子协程执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟妇一区二区三区 | 欧美又大粗又爽又黄大片视频 | 日韩久久影院 | 天堂视频免费 | 亚洲精品视频在线观看免费 | 亚洲乱码视频在线观看 | 国产欧美亚洲精品 | 抖音视频在线观看 | 激情五月在线 | 欧美性tv | 少妇视频在线 | 成年人免费视频播放 | 亚洲一区电影网 | 91国偷自产一区二区三区老熟女 | 人妻体体内射精一区二区 | 日韩av影片在线观看 | 久草视 | 中文字幕日韩欧美一区二区 | 麻豆系列在线观看 | 亚洲精品www久久久久久 | 7799精品视频天天看 | 亚洲a网| 国产精品久久欧美久久一区 | 国产乱淫a∨片免费视频 | 亚洲va韩国va欧美va精品 | www日本免费 | 久久久高清 | 成人一区在线观看 | 亚洲第一二三区 | 国产精品久久久久不卡 | 四虎婷婷 | 精品国产免费人成在线观看 | 久久久综合网 | 午夜激情福利 | 中文字幕一区二区三区在线不卡 | 日本东京热一区二区三区 | 日本婷婷 | 成人人伦一区二区三区 | 色无极亚洲影院 | 国产亚洲制服欧洲高清一区 | av片在线观看网站 | 久久99精品国产 | 麻豆av网站 | 日韩欧美高清在线视频 | 精品一区在线播放 | 欧美日韩国产精品综合 | 九九热在线播放 | 超碰在线免费观看97 | 国产手机在线播放 | 久草手机在线 | 一起射导航 | 成人国产免费观看 | 中文字幕第二页 | 老熟女一区二区三区 | 免费在线观看av网址 | 国产古装艳史毛片hd | 婷婷九月| 日韩在线视频免费播放 | 一区二区三区高清在线 | www.国产欧美 | av片免费播放 | 日韩最新视频 | 91午夜理伦私人影院 | 国产一及毛片 | 午夜视频在线观看一区二区 | 亚洲一级特黄毛片 | 淫五月天 | 色播放| 一区二区激情 | 超碰caoprom| 午夜激情一区二区 | 国产精品7777777 | 亚洲另类视频 | 95在线视频 | 美女扒开腿让人桶爽 | 亚洲黄色一区二区 | 91在线精品入口 | 亚洲午夜伦理 | 超碰人人人人人 | 香蕉视频日本 | 成人做爰www免费看视频网站 | www.人人草| 中文字幕在线播放一区二区 | 日韩精品无码一本二本三本色 | 人成免费| 成人国产综合 | 最近最好的2019中文 | 稀缺小u女呦精品呦 | 国产探花精品一区二区 | 在线观看www视频 | 国产美女毛片 | 97影音| 18精品爽国产白嫩精品 | 日本欧美黄色 | 国产欧美日韩一区二区三区 | 97超碰资源站 | 91在线视频网址 | 亚洲欧美在线播放 | 波多野结衣一区二 |