01.并发编程
Q:并发和并行的区别? A:并发指多线程在一个CPU上利用时间片交替运行,并行是指多线程在多个CPU上同时运行
Q:协程与线程区别? 协程:用户态,轻量级线程,栈MB级别 线程:内核态,线程跑多个协程,栈KB级别
Go语言提倡通过通信来共享内存,而不是通过共享内存而实现通信,通过channel来实现。
- 无缓冲通道 make(chan int)
- 有缓冲通道 make(chan int,2)
02.依赖管理
//配置文件示例
module github.com/Moonlight-Zhao/go-project-example
go 1.16
require (
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-gonic/gin v1.3.0 // indirect
github.com/go-playground/validator/v10 v10.10.0 // indirect
)
Go Module
依赖管理三要素
- 配置文件,依赖描述(go.mod)
- 依赖管理基本单元
- 原生库
- 单元依赖 2.中心仓库管理依赖
- 语义化版本
- 基于commit伪版本 3.本地工具
03.测试
- 单元测试
- Mock测试
- 基准测试
04.项目实战