go语言的sync.Once类型

sync.Once 是 Go 语言中的一个同步原语,它提供一种机制确保某个操作只执行一次。sync.Once 类型的变量可以用来保证一个函数只被执行一次,无论有多少个goroutine尝试调用它。

通过调用 sync.Once 类型变量的 Do 方法,并将要执行的函数作为参数传递给它,可以确保这个函数仅在第一次调用时执行,而后续的调用都将被忽略。

在这个例子中,通过创建一个 sync.Once 类型的变量 postOnce,您可以将某个函数绑定到这个变量,并且该函数只会在第一次调用 postOnce.Do() 时执行,后续的调用都会被忽略。这在需要确保某个操作只执行一次的场景中非常有用,比如只初始化一次全局变量、加载配置文件等操作。

var postOnce sync.Once
​
func myFunction() {
    fmt.Println("This function will only be executed once.")
}
​
func main() {
    for i := 0; i < 10; i++ {
        postOnce.Do(myFunction) // 只有第一次调用会执行myFunction函数
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值