1.理解Go的Context机制
Context通常被译作上下文,它是一个比较抽象的概念,一般理解为“程序单元的一个运行状态、现场、快照”。将content翻译为“上下文”,很好地诠释了其本质,说明了数据流的方向,上游会把内容传递给下游。在Go语言中,程序单元指的就是Goroutine。
每个Goroutine在执行之前,都要先知道“程序当前的执行状态”。通常,将这些执行状态封装在一个Context变量中,传递到要执行的Goroutine中。上下文几乎已经成为传递“与请求Request具有相同生命周期的变量”的标准方法。在网络编程中,当接收网络请求Request时,以及处理网络请求Request时,我们可能需要开启不同的Goroutine,分别处理“获取请求数据”与“执行逻辑业务”。一个请求Request会在多个Goroutine中处理,而这些Goroutine可能需要共享Request的一些信息;同时,当该Request被取消或者超时的时候,依据这个Request创建的所有Goroutine也应该被结束。
参考文献
2.golang mod 包管理使用 引入本地包
go mod edit -replace gitlab.casa-systems.com/mobility/smf/oauth2mgr=/git/work/oauth2mgr/
go mod vendor
https://blog.csdn.net/whatday/article/details/103610285
3.理解指针类型的接收器
在计算机中,小对象由于值复制时的速度较快,所以适合使用非指针接收器,大对象因为复制性能较低,适合使用指针接收器,在接收器和参数间传递时不进行复制,只是传递指针。
http://c.biancheng.net/view/69.html
4.性能测试
https://segmentfault.com/a/1190000018471470
https://my.oschina.net/solate/blog/3034188