sync
通过sync使程序只执行一次
golang
package main
import (
"fmt"
"sync"
)
func main() {
var once sync.Once
onceBody := func() {
fmt.Println("Only once")
}
done := make(chan bool)
// 创建 10 个 goroutine,但是 onceBody 只会执行 1 次
for i := 0; i < 10; i++ {
go func() {
once.Do(onceBody)
done <- true
}()
}
// 等待 10 个 goroutine 结束
for i := 0; i < 10; i++ {
<-done
}
}
输出结果:
jsOnly once
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!