在 Go 语言中,context 是一种用于在多个 goroutine 之间传递请求作用域数据、取消信号和截止时间的标准库。context 可以用于控制 goroutine 的生命周期,解决 goroutine 泄漏和取消等问题。
context 的主要作用有:
传递请求作用域数据:context 可以用于在多个 goroutine 之间传递请求作用域数据,例如用户认证信息、请求 ID 等。这些数据可以通过 context 的 WithValue 方法设置,在整个请求处理过程中传递,并且不需要显式地传递给每个函数。
控制 goroutine 生命周期:context 可以用于取消 goroutine,以避免 goroutine 泄漏或等待时间过长。当一个 context 被取消时,与该 context 相关的所有 goroutine 都会被取消。
传递截止时间:context 可以用于传递截止时间,例如请求超时时间。当超过截止时间时,可以取消相关的 goroutine。
作者:用户8393410288470
链接:
juejin.cn
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
context 的主要作用有:
传递请求作用域数据:context 可以用于在多个 goroutine 之间传递请求作用域数据,例如用户认证信息、请求 ID 等。这些数据可以通过 context 的 WithValue 方法设置,在整个请求处理过程中传递,并且不需要显式地传递给每个函数。
控制 goroutine 生命周期:context 可以用于取消 goroutine,以避免 goroutine 泄漏或等待时间过长。当一个 context 被取消时,与该 context 相关的所有 goroutine 都会被取消。
传递截止时间:context 可以用于传递截止时间,例如请求超时时间。当超过截止时间时,可以取消相关的 goroutine。
作者:用户8393410288470
链接:
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
展开
评论
点赞