go语言之并发编程

171 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记

并发编程:

类似于多线程

Go语言的并发模型实CSP(Communicating Sequential Processes)提倡通过通信共享内存而不是通过共享内存实现通信。

channel:就是Go语言中,将一个goroutine发送特定值到另一个goroutine的通信机制。

Go 语言中的通道(channel)是一种特殊的类型。通道就是一个队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。

无缓冲

有缓冲

阻塞

单项

写法

(58条消息) Go语言并发编程_Channel_Bryce_Huang的博客-CSDN博客

依赖管理

引包时的版本管理问题

下载模块时使用

(58条消息) Go语言之依赖管理_聪明的竹子的博客-CSDN博客_go 依赖管理

单元测试:

就是软件测试,自己编几组样例

  1. 要开始一个单元测试,需要准备一个 go 源码文件,在命名文件时需要让文件必须以_test结尾。

2、单元测试源码文件可以由多个测试用例组成,每个测试用例函数需要以Test为前缀

func TestXXX( t *testing.T )

3、测试用例文件不会参与正常源码编译,不会被包含到可执行文件中。

4、测试用例文件使用 go test 指令来执行,没有也不需要 main() 作为函数入口。所有在以_test结尾的源码内以Test开头的函数会自动被执行。

5、测试用例可以不传入 *testing.T 参数

6、新建的测试文件一般和源文件 放同一目录

7、go单元测试,引入包 testing