当前位置: 首页 > news >正文

上海近期新闻事件/qq群排名优化软件官网

上海近期新闻事件,qq群排名优化软件官网,上海培训网站建设,php开发网站 用java做后台?目录 单例模式 实现原理 实现 测试 单例模式 单例模式是最简单的设计模式之一,它提供了创建对象的最佳方式。这种模式涉及到一个单一的结构体,该结构体负责创建自己的对象,同时确保只有单个对象被创建。即多次创建一个结构体的对象&…

目录

单例模式

实现原理

实现

测试


单例模式

单例模式是最简单的设计模式之一,它提供了创建对象的最佳方式。这种模式涉及到一个单一的结构体,该结构体负责创建自己的对象,同时确保只有单个对象被创建。即多次创建一个结构体的对象,得到的对象的存储地址永远与第一次创建对象的存储地址相同。

实现原理

利用 sync.Once 方法Do,确保Do中的方法只被执行一次的特性,创建单个结构体实例。

实现

import ("sync"
)var (instance 	*Schoolonce 		sync.Once
)type School struct {Name	stringTel		string
}func CreateSchool(name, tel string) *School {once.Do(func() {instance = new(School)instance.Name = nameinstance.Tel = tel})return instance
}

使用Do方法也巧妙的保证了并发线程安全。

测试

package mainimport ("fmt""strconv""sync"
)var (instance 	*Schoolonce 		sync.Once
)type School struct {Name	stringTel		string
}func CreateSchool(name, tel string) *School {once.Do(func() {fmt.Println("----- init -----")instance = new(School)instance.Name = nameinstance.Tel = tel})return instance
}func main() {var wg sync.WaitGroupwg.Add(10)for i:=0; i<10; i++ {go func(seq int) {defer wg.Done()seqStr := strconv.Itoa(seq)school := CreateSchool("school"+seqStr, seqStr)fmt.Printf("%s\tname: %s,\t tel: %s,address:%p\n",seqStr,school.Name,school.Tel,school,)} (i)}wg.Wait()
}

执行结果:

----- init -----
9       name: school9,   tel: 9,address:0xc0000b0000
2       name: school9,   tel: 9,address:0xc0000b0000
5       name: school9,   tel: 9,address:0xc0000b0000
3       name: school9,   tel: 9,address:0xc0000b0000
4       name: school9,   tel: 9,address:0xc0000b0000
6       name: school9,   tel: 9,address:0xc0000b0000
0       name: school9,   tel: 9,address:0xc0000b0000
8       name: school9,   tel: 9,address:0xc0000b0000
7       name: school9,   tel: 9,address:0xc0000b0000
1       name: school9,   tel: 9,address:0xc0000b0000

可以看出,Do函数中的内容仅被执行了一次,所有实例化的对象都有相同的内容,且指向的地址相同。

http://www.lbrq.cn/news/1258795.html

相关文章:

  • 模板网站和定制网站影响排名/淘宝热搜关键词排行榜
  • 国外炫酷网站/什么是指数基金
  • wordpress 数据库字段/seo综合查询 站长工具
  • 服务器上的php4.0网站连接sql2005服务器连接不上/google优化推广
  • 网站建设wordpress比较/精准推广引流5000客源
  • 大学生做家教网站/帮人推广的平台
  • 代做网站公司/此网站不支持下载视频怎么办
  • 沈阳什么行业做网站的最多/百度小说搜索热度排行榜
  • 做起点说网站的服务器多少钱/抖音seo搜索引擎优化
  • 商城系统网站模板/域名解析ip地址
  • 怎么做一键添加信任网站/郑州seo
  • 淄博 网站制作/南京最新消息今天
  • ruby网站开发工程师招聘/附近电商培训班
  • 网站建设对促进部门工作的益处/西安网站关键词推广
  • 网站建设 手机app/网络推广方案的内容
  • 龙华大浪做网站/佛山seo联系方式
  • 为什么建设银行网站/重大新闻事件
  • 网页设计公司兴田德润实力强/网站排名优化快速
  • 贵州企业品牌网站建设/泉州搜索推广
  • 导航网站的网站地图怎么做/阿里云万网域名查询
  • 杭州电子商务网站开发/网络营销五个主要手段
  • 揭阳智能模板建站/阳泉seo
  • 重庆网站开发商城/网站seo推广方案
  • 网站建设 厦门/福州seo按天收费
  • 建设电商网站的/西地那非片多少钱一盒
  • 用自己的电脑做服务器建网站/企业网站如何优化
  • 成都网站seo推广/百度快照提交入口
  • 廊坊网站建设冀icp备/网站搜索优化价格
  • 上海做网站那家公司好/外链大全
  • 贵阳有哪些做网站的公司/seo电商运营是什么意思
  • ref和reactive的区别
  • 【Keras学习笔记】手写识别
  • 基于高斯光束干涉的微球体相位成像系统设计与实现
  • 13.Redis 的级联复制
  • [硬件电路-150]:数字电路 - 数字电路与模拟电路的异同
  • ORA-12514:TNS: 监听程序当前无法识别连接描述符中请求的服务