概述
9.5 sync.Once初始化
知识点
- 1.初始化延迟到需要的时候再去做就是一个比较好的选择–懒加载
- 2.所有并发的问题都可以用一致的、简单的既定的模式来规避
- 3.多个goroutine都需要访问的变量,使用互斥条件来访问
代码
- 章节中的例子
//Icon用到了懒初始化(lazy initialization)
var icons map[string]image.Image
var loadIconsOnce sync.Once
func test_sync_Once()
{
//待完善
}
func loadIcons() {
icons = make(map[string]image.Image)
//icons["spades.png"] = loadIcon("spades.png")
//icons["hearts.png"] = loadIcon("hearts.png")
//icons["diamonds.png"] = loadIcon("diamonds.png")
//icons["clubs.png"] = loadIcon("clubs.png")
}
func Icon(name string) image.Image {
loadIconsOnce.Do(loadIcons)
return icons[name]
}
——不足之处,欢迎补充——
备注
《Go 语言圣经》
- 学习记录所使用的GO版本是1.8
- 学习记录所使用的编译器工具为GoLand
- 学习记录所使用的系统环境为Mac os
- 学习者有一定的C语言基础
代码仓库
最后
以上就是大胆手链为你收集整理的Go 语言圣经 9.5 sync.Once初始化9.5 sync.Once初始化的全部内容,希望文章能够帮你解决Go 语言圣经 9.5 sync.Once初始化9.5 sync.Once初始化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复