context 是什么
Go 1.7 标准库引入 context,中文译作 “上下文”,准确说它是 goroutine 的上下文。主要用来 在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。
随着 context 包的引入,标准库中很多接口因此加上了 context 参数,例如 database/sql 包等。使用 context 几乎成为并发控制和超时控制的标准做法,与它协作的 API 都可以由外部控制执行 “取消” 操作,例如:取消一个 HTTP 请求的执行。
另外,context.Context 可以协调多个 goroutine 中的代码执行 “取消” 操作,并且可以存储键值对,最重要的是它是并发安全的操作。
上次更新: 7/12/2024, 2:37:05 PM