在go服务器中,通常 每个传入的请求都会在自己的goroutine
中进行处理. 请求处理程序通常会启动额外的goroutine
来访问数据库 或者第三方服务.
处理请求的一组goroutine
通常需要访问特定于请求的值: 例如userid
, request_id
, token
,timeout
…,当请求被取消或者超时时,所有处理该请求的goroutine都应该快速退出. 以便系统可以快速回收他们正在使用的任何资源.
context 是 go 1.14 引入 的一个概念. 用于解决上述问题.