go 单例模式
go 单例模式
//单例模式
//确保并发的情况下,让某段代码只会被执行一次
var (
name *gzhsinit1
//调用并发只执行一次的模块 sync,这个once应该是一一对应的,多个单例模式的时候不能共用一个once,否则会阻塞影响
once sync.Once
)
//这里返回值是 指针,可以加速代码速度。
func dlmsinit1() *gzhsinit1{
//当用到sync模块的Do函数,并发的时候小括号内部的代码只运行一次
once.Do(func() {
if name == nil {
name = gzhsinit3()
}
})
return name
}