Go语言并发与微服务架构核心元素
1. 单例模式
单例模式是一种广为人知的设计模式,用于确保特定类型只创建一个实例。在许多编程语言中,存在多种模式来实现这一点,同时保证线程安全。在Go语言中,使用 sync 包中的 Once 类型可以非常轻松地实现该模式。
以下是一个简单的单例模式示例代码:
type cache struct{}
var cacheSingleton *cache
var once sync.Once
func main() {
GetCache()
GetCache()
GetCache()
}
func GetCache() *cache {
once.Do(func() {
println("Creating singleton object")
cacheSingleton = &cache{}
})
return cacheSingleton
}
上述代码的输出结果为 Creating singleton object ,且仅输出一次。 once.Do 函数接收一个函数作为参数,它确保内部的函数只执行一次,这正是单例模式所需要实现的。
2. sync包中的低级例程
sync 包中还有其他一些低级例程,这里简单介绍:
- sync.Map :与
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



