这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
CSP
CSP = Communicating Sequential Processes
队列:从入先出
- 无缓冲通道:同步通道
- 有缓冲通道:生产消费模式
协程的同步
func ManyGoWait() {
war wg sync.WaitGroup
// 计数器添加 5
wg.Add(5)
for i := 0; i < 5; i++ {
go func(j int) {
// 计数器减 1
defer wg.Done()
// do something
}(i)
}
// 直到计数器为 0
wg.Wait()
}
依赖管理
Proxy 会缓冲上面的 Package
先从 Proxy1 选,没有再选择 Proxy 2,最后再选择 Direct
注意:答案不是 C,而是选择最低的兼容版本。
测试
可以分为
- 单元测试
- 回归测试
- 集成测试
单元测试
GO
单元测试-规则
- 所有测试文件以 _test.go 结尾
func TestXxx(*testing.T)- 初始化逻辑放到
TestMain中
例子
func Hello() string {
return "Jerry"
}
func TestHello(t *testing.T) {
output := Hello()
expectOutput := "Tom"
if output != expectOutput {
t.Errorf("Expected %s do not match actual %s", expectOutput, output
}
}
运行测试样例:
go test [flags][packages]