Go context 详解:取消传播、超时控制与请求级值传递
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
context 用于传递取消信号、超时/截止时间、请求级值。创建:context.Background()(根)、context.TODO();派生:WithCancel、WithTimeout、WithDeadline、WithValue。取消传播:父 ctx 取消(或超时)→ 所有子 ctx 的 Done() 关闭 → 监听方退出。规范:ctx 作为函数第一个参数传递;监听 ctx.Done() 做清理;WithValue 只存请求级少量数据(key 用自定义类型避免冲突);HTTP 请求、DB 调用、goroutine 都要传 ctx 实现优雅取消。
回复
0 条回复