Go的sync.Once(三):once.do(函数名) 函数只执行一次
生活随笔
收集整理的這篇文章主要介紹了
Go的sync.Once(三):once.do(函数名) 函数只执行一次
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Once
once.do(函數名)? 函數只執行一次!執行一次后,其他協程不執行了
// 用once可以保證上面的oncebody被執行一次 package mainimport ("fmt""sync""time" )func main() {var once sync.OnceonceBody := func() {fmt.Println("Only once")}done := make(chan bool)for i := 0; i < 5; i++ {j := igo func(int) {once.Do(onceBody)fmt.Println(j)done <- true}(j)}<-done// 表示等待所有的進行執行完成time.Sleep(2 * time.Second) }// Only once // 0 // 4 // 1 // 2 // 3?
總結
以上是生活随笔為你收集整理的Go的sync.Once(三):once.do(函数名) 函数只执行一次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喀什体彩竞彩多久才能申请下来
- 下一篇: Go的sync.Cond(四)