阜阳网站建设公司/图片优化
单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
要保证线程安全
package mainimport ("fmt""sync""time"
)type Singleton struct {
}var singleton *Singleton
var singletonOnce sync.Oncefunc Instance() *Singleton {singletonOnce.Do(func() {singleton = &Singleton{}})return singleton
}func (s *Singleton) print() {fmt.Printf("address: %p\n", s)
}func main() {Instance().print()Instance().print()go Instance().print()go Instance().print()time.Sleep(100 * time.Millisecond)
}