go语言进阶与依赖管理| 青训营笔记

74 阅读1分钟

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

本堂课重点内容

1.语言进阶
2.依赖管理

详细知识点介绍

语言进阶

go程

go语言可以充分发挥多核优势,go语言中的协程(go程)是用户态的,轻量级线程,栈MB级别。 线程是内核态的,线程跑多个线程,栈KB级别。(go程可以看作是轻量级的线程,go语言可以轻松开上万个go程)

CSP

image.png

image.png go语言有两种实现并发共享内存的方式:一种是通过管道来实现,另一种是通过sync包中的锁Mutex或者aitGroup来实现(WaitGroup类似于C语言(操作系统)中的信号量)。

image.png

image.png go语言提倡通过通信共享内存而不是通过共享内存而实现通信(即通过管道来实现并发go程直接的通信来共享内存)。

依赖管理

gopath->Go Vendor->Go Module

Go Module

1.通过go.mod文件管理依赖包版本
2.通过go get/go mod指令工具管理依赖包

依赖管理三要素

1.配置文件,描述依赖(go.mod)
2.中心仓库管理依赖库(Proxy)
3.本地工具(go get/mod)

image.png

image.png

课后个人总结

go程可以看作是轻量级的线程,go语言可以轻松开上万个go程,go处理高并发有先天优势。
go语言提倡通过管道来实现并发go程直接的通信来共享内存。
依赖管理三要素
1.配置文件,描述依赖(go.mod)
2.中心仓库管理依赖库(Proxy)
3.本地工具(go get/mod)