这是我参与「第五届青训营」笔记创作活动的第3天。
本文重点内容
- go并发、协程、Lock、WaitGroup
- go 三种依赖方式的特点
- go module三元素
课程内容详解
Go并发
并发与并行的区别:
携程是更轻量级的线程。比线程速度更快。
协程之间交换信息可以通过通道或者临界区的方式实现,但是Go提倡通过通信共享内存,而不是通过共享内存而实现通信。
创建有缓冲和无缓冲通道的两种方法。
Lock
lock sync.Mutexlock.Lock()lock.Unlock()
WaitGroup
wg sync.WaitGroupwg.Add(5)wg.Done()wg.Wait()
Go的版本管理
存在无法同时依赖不同版本的问题。
存在依赖的依赖无法同时依赖不同版本的问题。
依赖管理三要素
mod文件包含三部分:基本单元,原生库,以及单元依赖
版本有两种标志方法,语义化版本和commit版本,版本号、时间戳、哈希前缀。
indirect表示间接依赖。
incompatible表示对老旧没有mod依赖的提示。
go mod 会选择最低的兼容版本作为最终依赖的版本。
Proxy可以加速和缓存需要的依赖内容。
本地化工具:go get
本地化工具:go mod
本文小结
- go并发、协程、Lock、WaitGroup
- go 三种依赖方式的特点
- go module三元素