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

52 阅读2分钟

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

一、本堂课重点内容:

  • 本节课介绍了并发编程的内容:goroutinue, channel, sync,go依赖管理演进和go Module依赖管理方案。

二、详细知识点介绍:

  • 本堂课介绍了:
    • 1,并发编程

    • 线程:内核态,轻量级线程 MB级别

    • 协程:用户态,线程跑多个协程,KB级别

    • 开启协程:只需要再调用函数的时候前面加上一个go,这就可以为一个函数来创建一个协程来运行

    • 协程之间的通信:提倡通过通信(channel)来共享内存

      • channel创建:make(chan 元素类型, [缓冲大小])
    • 并发安全Lock: lock sync。Mutex lock.lock() XXX lock.unlock()

    • waitGroup add(int)计数器个数 Done() 完成计数器-1 Wait()阻塞直到完成

  • 2,依赖管理---三要素
    • 配置文件,描述依赖 go.mod
      • 依赖管理基本单元,原生库,单元依赖:每个依赖单的模块路径+版本的唯一标识
    • 中心仓库管理依赖库 Proxy
    • 本地工具 go get/mod
      • go get example.org/pkg
        • @update 下载默认版本
        • @none 删除依赖
        • @v1.1.2 指定tag版本,语义版本
        • @23dfdd5 指定特定的commit版本
        • @master 下载该指定分支的最新的commit版本
      • go mod
        • init 初始化项目,创建go.mod文件
        • download 下载go.mod文件中的模块到本地缓存
        • tidy 将go.mod文件中增加需要的依赖,删除不需要的依赖

三、实践练习例子:

  • 本节课主要是介绍内容没有什么代码,所以暂时没有代码。大概有的就是并发安全所介绍的两种方法 lock()和waitGroup。

四、课后个人总结:

  • 本节课主要是对所教内容的了解,需要记住go get/mod 的一些命令。