golang基础: 应用实践 | 青训营笔记

100 阅读1分钟

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

golang基础

线程属于内核态,重量级的。 一个线程可以跑多个routine,是用户态的。

go routine

字节的课没说,其实加上go这个关键字就可以做到开启routine。但是有两种:

  • go checkLink(link, channel)调起一个function
  • 用匿名函数
go func(link, channel) {
// implementation
}

channel

通信方式:

  • go推荐用的channel,使用有缓冲通道有助于解决同步问题。

image.png

image.png

  • 共享内存,需要及时加锁,否则会出问题。

加锁

并发问题解决,但是加锁这个方式不优雅: image.png

wait group

用wait group比加锁好一些。 image.png

测试

  • 一般覆盖率在50%~60%,重要的80+% image.png

mock数据: image.png

完成一个项目的流程:

  • 了解项目背景

image.png

image.png

image.png

组件工具

image.png image.png image.png image.png image.png image.png image.png image.png

image.png