对EchoHandler的handle方法的两点疑问

来源:11-4 实现EchoHandler(二)

sadcloud

2022-06-18

老师,我对EchoHandler的handle方法有两点疑问:

  1. 我对入参context不是很了解,我们传入前没有对context进行任何配置,在handle方法也没有进行调用,这是一种什么样的用法呢?如果不设置context参数会有什么问题呢?
  2. server.go中的sync.WaitGroup用法我理解,echo.go/Handle方法中的client.Waiting.Add(1)和client.Waiting.Done()我不太理解,感觉并没有设计到线程间的协作为什么要用waitgroup呢,老师再本节视频中6:30时所说的“不要关掉我,等我做完这个业务再关掉我”,我不太理解

感谢老师解惑~

写回答

1回答

Moody

2022-06-18

1 context一般是用来做协程同步的,比如说这里面可以传一个超时时间,等等。但是这里只是习惯性的传进来了,其实最后也没用到,去掉这个参数也没影响的。
2 echoHandler的close方法写的有点问题,应该要调用client的close方法(下图),这里面有等待waitgroup的逻辑。62ad940d0001797e10660480.jpg
0
2
Moody
回复
sadcloud
对的
2022-06-19
共2条回复

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程