我是靠谱客的博主 大胆手链,这篇文章主要介绍Go 语言圣经 9.5 sync.Once初始化9.5 sync.Once初始化,现在分享给大家,希望可以做个参考。

9.5 sync.Once初始化

知识点

  • 1.初始化延迟到需要的时候再去做就是一个比较好的选择–懒加载
  • 2.所有并发的问题都可以用一致的、简单的既定的模式来规避
  • 3.多个goroutine都需要访问的变量,使用互斥条件来访问

代码

  • 章节中的例子
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部