在 Go 语言中,context 包提供了一种在多个 goroutine 之间传递取消信号和请求作用域(如超时、截止时间等)的机制。context 在并发编程中扮演着重要角色,尤其是在处理 HTTP 请求、数据库操作等需要在多个 goroutine 间共享和传递状态的场景中。 1. context 的用途 取消信号:可以通知多个 goroutine 停止工作,避免无用的资源消耗。 超时控制:可以为一系列操作设置一个截止时间,超过这个时间自动取消。 请求范围数据:可以在上下游 goroutine 间传递数据,通常用于传递请求 ID、认证信息等。 2. context 的基本概念 context 包中的主要概念是 Context 类型,它是一个接口,定义了用于取消信号、截止时间、超时和传递数据的方法。Context 实现是不可变的,每次创建新 Context 时会基于现有的 Context 扩展出新的状态。 3. context 的常见函数和方法 context.Background():返回一个空的、根 Context,通常用于整个程序的入口。 context.TODO():返回一个空的.... golang之context go