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
}
posted @ 2022-05-29 17:00  liwenchao1995  阅读(39)  评论(0编辑  收藏  举报