golang中的sync.Once可以让代码只执行一次,比如:
func do() {
fmt.Println(2)
}
func main() {
a := sync.Once{}
for i := 0; i < 100; i++ {
go a.Do(do)
}
}
输出为:
GOROOT=E:\go #gosetup
GOPATH=E:\go_program;E:\go的环境变量 #gosetup
E:\go\bin\go.exe build -o C:\Windows\Temp\GoLand\___go_build_gee_123.exe gee/123 #gosetup
C:\Windows\Temp\GoLand\___go_build_gee_123.exe
2
Process finished with the exit code 0
本文介绍了Go语言中的sync.Once类型,展示了如何利用它确保函数仅执行一次。在给出的示例中,尽管循环执行了100次,但do函数只打印了一次数字2,体现了sync.Once的单例特性。
1077

被折叠的 条评论
为什么被折叠?



