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

96 阅读1分钟

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

golang基础

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

go routine

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

  • go checkLink(link, channel)调起一个function

  • 用匿名函数

go func(link, channel) {
// implementation
}

channel

通信方式:

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

image.png

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

加锁

并发问题解决,但是加锁这个方式不优雅。(lock)

wait group

用wait group比加锁好一些。

测试

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

完成一个项目的流程

  1. 了解项目背景
  2. 需求用例
  3. Entity Relationship Diagram
  4. 分成结构:
  1. 组建工具
  2. mvc