Go 语言学习 | 字节青训营

50 阅读1分钟

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-----------增加需要的依赖,删除不需要的依赖