go语言基础—–19—–Context使用原则、接口、派生上下文(select的多路复用可以参考这里理解更好)
1 Go语言Context介绍
为什么需要 Context ?
每一个处理都应该有个超时限制。需要在调用中传递这个超时。比如开始处理请求的时候我们说是 3 秒钟超时。那么在函数调用中间,这个超时还剩多少时间了?需要在什么地方存储这个信息,这样请求处理中间可以停止。Context是协程安全的。代码中可以将单个Context传递给任意数量的goroutine,并在取消该Context时可以将信号传递给所有的goroutine。
2 Context接口
Context接口的文件位置位于go/src/context/路径下的context.go文件。 去掉注释后,实际就是下面的内容:
type Context interface {
Deadline() (deadline time.Time, ok bool)
Done() <-chan struct{}
Err() error
Value(key
go语言基础—–19—–Context使用原则、接口、派生上下文(select的多路复用可以参考这里理解更好)最先出现在Python成神之路。
共有 0 条评论