翻译自:Go Concurrency Patterns: Context
地址:https://blog.golang.org/context
简介
在Go server端,每个请求都是通过新起goroutine来处理。请求处理程序通常会启动其他goroutine来访问后端,例如数据库和RPC服务。处理该请求的goroutine集合通常需要访问特定于请求的值,例如最终用户的身份,授权令牌和请求的时限。当一个请求被取消或超时时,处理该请求的所有goroutine应该迅速退出,以便系统可以回收他们正在使用的资源。
在Google,我们开发了一个Context包,可以轻松地跨API边界将请求范围(request-scoped)的值,取消信号和截止日期(deadlines)传递给处理请求的所有goroutine。该软件包可作为Context公开使用。本文将介绍如何使用该package。
Context
Context包的核心是Context类型:
| |
