Go:sync.Once 实现单例模式
2024-08-24 08:23:10
代码:
package main import (
"fmt"
"sync"
) type Singleton struct{} var singleton *Singleton
var once sync.Once func GetSingletonObj() *Singleton {
once.Do(func() {
fmt.Println("Create Obj")
singleton = new(Singleton)
})
return singleton
} func main() {
var wg sync.WaitGroup
for i := 0; i < 5; i++ {
wg.Add(1)
go func() {
obj := GetSingletonObj()
fmt.Printf("%p\n", obj)
wg.Done()
}()
}
wg.Wait()
}
输出结果:
最新文章
- react UI交互 简单实例
- Android开发笔记之《JNI常用知识汇总》
- java第二次作业
- history 清空历史记录 或 history不记录历史命令
- bootstrap 多个 modal 相互遮挡
- 迪杰斯特拉(Java)
- MongoDB,HDFS, Spark to 电影推荐
- Java IO2:字节流
- FireFox、chrome通过插件使用IE内核,IE Tab v2
- 配置mybatis流程
- Js字符串判断
- webform开发经验(一):Asp.Net获取Checkbox选中的值
- (译)linux系统关于命令echo的15个例子
- JQuery中常用方法备忘
- 【java设计模式】之 工厂(Factory)模式
- 201521123036 《Java程序设计》第1周学习总结
- Web API系列之三 基本功能实现
- 进行app性能和安全性测试的重要性
- js处理json js递归
- server被强制关闭,
热门文章
- sql server通过脚本进行数据库压缩全备份的方法
- android内存溢出 java.lang.OutOfMemoryError
- NOIp 2014 解方程 【数学/秦九韶算法/大数取膜】By cellur925
- hql语法及自定义函数(含array、map讲解) + hive的java api
- 在MacOs上安装sqlsrv Mojave - 找不到&#39;php.h&#39;文件
- python之os、sys和random模块
- 模拟赛01 T3 盖房子
- AtCoder Grand Contest 001 D - Arrays and Palindrome
- Graph HDU - 4467
- centOS 部署服务器(一)