Go的sync.Once(三):once.do(函数名) 函数只执行一次
生活随笔
收集整理的這篇文章主要介紹了
Go的sync.Once(三):once.do(函数名) 函数只执行一次
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Once
once.do(函數(shù)名)? 函數(shù)只執(zhí)行一次!執(zhí)行一次后,其他協(xié)程不執(zhí)行了
// 用once可以保證上面的oncebody被執(zhí)行一次 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// 表示等待所有的進(jìn)行執(zhí)行完成time.Sleep(2 * time.Second) }// Only once // 0 // 4 // 1 // 2 // 3?
總結(jié)
以上是生活随笔為你收集整理的Go的sync.Once(三):once.do(函数名) 函数只执行一次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 喀什体彩竞彩多久才能申请下来
- 下一篇: 换防冻液需要清洗水箱吗