context.WithCancel
和类似的函数返回 cancel
函数的执行路径。
WithCancel
、WithDeadline
和 WithTimeout
函数接收一个 Context
(父项)并返回一个派生的 Context
(子项)和一个 CancelFunc
。
调用 CancelFunc
可以取消子项及其子项,删除父项对该子项的引用,并停止任何
相关的定时器。
如果不调用 CancelFunc,就会泄漏子项和其子项,直到父项被取消或定时器启动。
有关 context
包的更多信息,请参见 golang.org 上的 Package context 页面。
示例:
func _(ctx context.Context, cancel func()) {
var ctx2 context.Context
ctx2, cancel = context.WithCancel(ctx)
_ = ctx2
}