青训营笔记

37 阅读1分钟

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

Go语言进阶与依赖管理

go可以充分发挥多核优势,高效运行

协程:用户态,轻量级线程,栈MB级别

线程:内核态,线程跑多个协程,栈KB级别

线程的操作属于重的系统操作

调用协程,在函数前加一个“go”

image.png

image.png通道遵循“先入先出”

image.png

Channel是一种引用类型,使用make创建

声明方式:

make(chan 元素类型,【缓冲大小】)

1.无缓冲通道:make(chan int)

2.有缓冲通道:make(chan int,2)

通道缓冲容量大小代表了通道中能存放多少元素

缓冲满了会阻塞发送,直到元素被取走

image.png

channel语句中,使用“<--”将数据存入

image.png

实际开发中,并发安全问题有一定概率引起错误结果

image.png使用waitGroup实现一个并发任务的同步

image.png

依赖管理三要素: 1.配置文件,描述依赖---go.mod

2.中心仓库管理依赖库---Proxy

3.本地工具---go get/mod

image.png

image.png选择最低的兼容版本

image.png

image.png