200 字
1 分钟
context 是什么 - 标准库
Go 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。
context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。
随着 context 包的引入,标准库中很多接口因此加上了 context 参数,例如 database/sql 包。context 几乎成为了并发控制和超时控制的标准做法。
context.Context 类型的值可以协调多个 groutine 中的代码执行“取消”操作,并且可以存储键值对。最重要的是它是并发安全的。
与它协作的 API 都可以由外部控制执行“取消”操作,例如:取消一个 HTTP 请求的执行。
相关阅读
本主题其他内容
Go 原理与面试问答
本主题共 67 篇 ·
Go 语言 专题 →
深入 Go runtime 源码:GMP 调度器工作机制、map 扩容与渐进式迁移、channel 收发与阻塞唤醒、interface 底层结构与类型断言、反射原理与 GC 三色标记,逐一拆解高频面试考点。