2024-10-18
golang
00

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 } }

输出结果:

js
Only once

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!