这是我参与第五届青训营 」伴学笔记创作活动的第 2 天。
1.并发与并行
并发:操作系统分调度
并行:并发是实现并行的一个手段
线程:比较消耗资源。内核态,轻量级线程
协程:创建和调度由go本身来执行。 用户态
协程通信:通信共享内存而不是通过内存共享。
共享内存:通过临界区和互斥量。可能会出现数据静态,影响性能。
所以选择通信共享。
通过Channel来解决问题。通过make创建。
根据是否有缓冲区大小:分为无缓冲通道,有缓冲通道。
无缓冲:导致发送和接收同步化。
2.生产者和消费者
WaitGroup有Add、Done、Wait方法。 wait进行阻塞。
3.依赖管理
Gopath:
bin:存放二进制文件 pkg: 加速编译A src:项目源代码
依赖配置-go.mod
B选择最低的兼容版本 查找依赖路径
4.测试
从上到下,覆盖率逐层变大,成本逐层降低