package main
import(
"fmt"
"sync"
)
//想要单例实现的结构体
type Instance struct{}
var(
once sync.Once
instance *Instance
)
func NewInstance()*Instance{
//调用 sync.Once结构体的Do方法,
//里面传入你想要单例实例化哪个结构体的具体实现.
once.Do(func(){
instance = &Instance{}
fmt.Println("实例化成功")
})
fmt.Println("实例化失败,单例,已有此结构体.")
return instance
}
func main(){
for i:=0;i<3;i++{
_ = NewInstance()
}
}
sync.Once 的单例示例
最新推荐文章于 2024-05-22 11:34:35 发布