Go与工程| 青训营笔记

32 阅读1分钟

这是我参与「第五届青训营」笔记创作活动的第3天。

本文重点内容

  • go并发、协程、Lock、WaitGroup
  • go 三种依赖方式的特点
  • go module三元素

课程内容详解

Go并发

并发与并行的区别:

image.png

携程是更轻量级的线程。比线程速度更快。 image.png

协程之间交换信息可以通过通道或者临界区的方式实现,但是Go提倡通过通信共享内存,而不是通过共享内存而实现通信。 image.png

创建有缓冲和无缓冲通道的两种方法。

image.png

Lock

  • lock sync.Mutex
  • lock.Lock()
  • lock.Unlock()

WaitGroup

  • wg sync.WaitGroup
  • wg.Add(5)
  • wg.Done()
  • wg.Wait()

image.png

Go的版本管理

image.png 存在无法同时依赖不同版本的问题。

image.png 存在依赖的依赖无法同时依赖不同版本的问题。

image.png

依赖管理三要素

image.png

mod文件包含三部分:基本单元,原生库,以及单元依赖

image.png

版本有两种标志方法,语义化版本和commit版本,版本号、时间戳、哈希前缀。

image.png

indirect表示间接依赖。

image.png

incompatible表示对老旧没有mod依赖的提示。

image.png

go mod 会选择最低的兼容版本作为最终依赖的版本。

image.png

Proxy可以加速和缓存需要的依赖内容。

image.png

本地化工具:go get image.png

本地化工具:go mod image.png

本文小结

  • go并发、协程、Lock、WaitGroup
  • go 三种依赖方式的特点
  • go module三元素

参考资料与引用

Go 语言进阶与依赖管理 - 掘金 (juejin.cn)