这是我参与「第五届青训营 」伴学笔记创作活动的第 4天
这几天就是不断再补基础知识,然后并对此做个记录,同时也完成青训营的课程的笔记记录,然后最后再总结一下
一、本堂课重点内容
并发编程:
- 首先重点讲了一下关于并发的内容,同时也讲了go语言的协程的知识点,同时还有用来协程通信的管道内容, 依赖管理
- 主要讲了关于go依赖包的管理的相关内容
二、详细知识点介绍
-
1.并发编程 首先是并发和并行的概率 并发是指多个线程在同一个CPU上运行,主要是通过时间片的切换看起来像多个程序在同时运行,只不过CPU时间片的切换十分迅速,所以看起来像同时运行 并行是真正意义多个线程在多个CPU上运行,
-
Goroutine 然后就是go的一大亮点,协程的讲解,协程是不同于线程,它是轻量级的,资源消耗少, 使用的时候在调用函数前加上关键词go即可使用协程。
-
协程之间的通信 go语言提倡通过通信共享内存而不是通过共享内存实现通信。 通道(channel) 通过make(chan 元素类型,缓冲大小)来建立通道,同时可以设置缓存大小,缓存可以解决协程之间运行不均衡带来的执行效率问题。
-
并发安全Lock 通过lock.Lock()来上锁,通过lock.UnLock()来解锁,解决数据不一致问题,但会降低运行效率。
-
WaitGroup 用于计算协程计数器,打开协程的时候Add()将计数器增加,协程执行结束用Done()将计数器-1,Wait()阻塞等待计数器计为0。
-
2.依赖管理 go Module 用来管理go的依赖包和版本控制的一个依赖包管理工具, GoModule 依赖配置1.16版本后默认开启的模式 通过go.mod文件管理依赖的版本 通过
go get或者go mod指令工具获取依赖包 -
依赖管理三要素
- 配置文件,描述依赖 go.mod
- 中心仓库管理依赖库 Proxy
- 本地工具 go get/mod
三、课后个人总结
可以说了解go一大亮点协程的概念和使用,以及协程之间的通信管道的概念,同时也明白了类似java依赖管理工具maven的gomodule的使用和依赖版本概念