func main() {processNum := 5ch := make(chan struct{}, processNum)for true {ch <- struct{}{}go func() {defer func() {<-ch}()fmt.Println("我是協程", time.Now().UnixNano())time.Sleep(time.Second * 5)}()}
}
可以看到,這里每5s會執行一次帶有5個并發的打印,所以控制了for循環中協程的并發數量?
func main() {processNum := 5ch := make(chan struct{}, processNum)for true {ch <- struct{}{}go func() {defer func() {<-ch}()fmt.Println("我是協程", time.Now().UnixNano())time.Sleep(time.Second * 5)}()}
}
可以看到,這里每5s會執行一次帶有5個并發的打印,所以控制了for循環中協程的并發數量?
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/news/42299.shtml 繁體地址,請注明出處:http://hk.pswp.cn/news/42299.shtml 英文地址,請注明出處:http://en.pswp.cn/news/42299.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!