goroutine--协程
- 可以看作是一个独立的执行流程,由 Go 运行时调度和管理
- 多个 gorouttine 可以并发的执行,并且他们共享同一个地址空间
- 因此 gorouttine 之间可以通过共享内存进行通信
- 创建 gorouttine 非常简单,只需要在函数调用前加上关键字 "go" 即可
- 协程的栈一般是 KB 级别,而线程则是 MB 级别
WaitGroup--管理协程间同步
以下是它提供的一些接口
Add(delta int);// 计数器+delta
Done();//计数器-1
Wait();//阻塞直到计数器为0
依赖管理
- bin:项目编译的二进制文件
- pkg:项目编译的中间产物,加速编译
- src:项目源码,项目代码直接依赖该文件下的代码
- vender:存放依赖包副本,解决多个项目需要同一个 package 依赖冲突的情况
- go.mod:管理依赖包版本,定义版本规则和管理项目依赖关系
依赖管理三要素
- 配置文件,描述依赖-----go.mod
- 中心仓库管理依赖库-----Proxy
- 本地工具--------------go get.mod
go get 工具示例
go get example.org/pkg [参数列表] 上述参数列表有以下几个可选项
- @updata-----默认
- @none-------删除依赖
- @v1.1.2-----tag版本,语义版本
- @23dfdd5----特定的commit
- @master-----分支的最新commit
go mod 工具使用
go mod [参数列表] 上述参数列表有以下几个可选项
- init-----------初始化,创建 go.mod 文件
- download-------下载模块到本地缓存
- tidy-----------增加需要的依赖,删除不需要的依赖