go 中的 sync.Once

2022-08-27  本文已影响0人  wayyyy

sync.Once 是 Go 标准库提供的使函数只执行一次的实现,常应用于单例模式,sync.Once 仅提供了一个方法 Do,参数 f 是对象初始化函数

func (o *Once) Do(f func())

利用 sync.Once 来实现单例模式:

package singleton

import (
    "sync"
)

type singleton struct {}

var instance *singleton
var singletonOnce sync.Once

func GetInstance() *singleton {
    singletonOnce.Do(func() {
        instance = &singleton{}
    })
    
    return instance
}
上一篇 下一篇

猜你喜欢

热点阅读