GolangContextContextcontext.Background()
Golangcontext.Background()
contextGolang
作用
Golangcontext.go
Golang
请求Agoroutinengoroutine请求 Agoroutineparent
我想了想, 这不就是多协程之间的通信么, 这块我熟啊. 用锁, 用管道, 用什么都行, 只要将取消的消息群发给所有子协程就可以了, 随便列举几个方案:
bool
Context
ContextContext
Deadline() (deadline time.Time, ok bool)Done() <-chan struct{}Err() errorValue(key any) any
Context
- 通知子协程提前退出
- 携带环境变量
Golangcontextcontxt.gocontext.gocontext
Context
ContextContextparent
contextcontextcontext
emptyCtxemptyCtxTODOcontextcontextcontextcontextcontextcontextcontextcontextk-vcontext
最后
Context
Context
Contextk-v
DeadlineDoneContext
IsCancel() (cancel bool, e err)
十分简洁, 只需要告诉子协程是否退出及原因不就可以了么?
当然, 也可能官方是出于其他我没有想到的原因考虑.
parentparent
parentContext