NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## once 通过once实现单例模式: ~~~ type Singleton struct { } var instance *Singleton var once sync.Once func GetInstance() *Singleton { once.Do(func() { fmt.Println("初始化Singleton") instance = new(Singleton) }) return instance } func TestSingletonExample1(t *testing.T) { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func() { obj := GetInstance() fmt.Printf("instance address:%p \n", unsafe.Pointer(obj)) wg.Done() }() } wg.Wait() fmt.Println("main goroutine end") } ~~~