golang ContextDone 的作用和用法
Context.Done() 是 Go 语言中 Context 接口提供的一个方法,用于返回一个只读的 channel,当该 Context 被取消或超时时,该 channel 会被关闭。
该方法的作用是用于监控当前 Context 是否已经被取消或超时,如果是的话,就可以在程序中进行相应的处理,例如清理资源、关闭连接等操作。通常情况下,Context.Done() 会与 select 语句一起使用,以监听该 channel 的状态。
示例代码:
func foo(ctx context.Context) {
select {
case <-ctx.Done():
fmt.Println("Context is done")
// do something
return
default:
// do something else
}
}
在上面的代码中,foo 函数中使用 select 语句监听 ctx.Done() 的状态,如果该 channel 被关闭,则表示该 Context 已经被取消或超时,此时就可以进行相应的处理。如果该 channel 没有被关闭,则表示 Context 还可以继续使用,可以执行其他操作
原文地址: https://www.cveoy.top/t/topic/feP9 著作权归作者所有。请勿转载和采集!