go语言|青训营笔记

60 阅读1分钟

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

1.并发与并行

CleanShot 2023-01-16 at 18.18.36@2x.png 并发:操作系统分调度 并行:并发是实现并行的一个手段

CleanShot 2023-01-16 at 18.23.46@2x.png 线程:比较消耗资源。内核态,轻量级线程 协程:创建和调度由go本身来执行。 用户态 协程通信:通信共享内存而不是通过内存共享。 共享内存:通过临界区和互斥量。可能会出现数据静态,影响性能。 所以选择通信共享。 通过Channel来解决问题。通过make创建。 根据是否有缓冲区大小:分为无缓冲通道,有缓冲通道。 无缓冲:导致发送和接收同步化。

2.生产者和消费者

CleanShot 2023-01-16 at 18.44.23@2x.png

CleanShot 2023-01-16 at 18.49.43@2x.png

WaitGroup有Add、Done、Wait方法。 wait进行阻塞。

3.依赖管理

CleanShot 2023-01-16 at 18.54.09@2x.png

Gopath:

CleanShot 2023-01-16 at 18.54.52@2x.png

bin:存放二进制文件 pkg: 加速编译A src:项目源代码

CleanShot 2023-01-16 at 18.56.52@2x.png

CleanShot 2023-01-16 at 18.58.26@2x.png

CleanShot 2023-01-16 at 18.59.14@2x.png

依赖配置-go.mod

CleanShot 2023-01-16 at 19.00.22@2x.png

CleanShot 2023-01-16 at 19.04.14@2x.png

B选择最低的兼容版本 查找依赖路径

CleanShot 2023-01-16 at 19.05.17@2x.png

CleanShot 2023-01-16 at 19.05.40@2x.png

CleanShot 2023-01-16 at 19.05.53@2x.png

4.测试

CleanShot 2023-01-16 at 19.06.53@2x.png

从上到下,覆盖率逐层变大,成本逐层降低

CleanShot 2023-01-16 at 19.08.39@2x.png

CleanShot 2023-01-16 at 19.09.16@2x.png

CleanShot 2023-01-16 at 19.09.51@2x.png