Go 语言 Context 的作用和用法 - 详细指南
Go 语言 Context 的作用和用法 - 详细指南
作用:
-
传递请求相关的信息:Context 可以在请求处理链路中传递请求相关的信息,比如请求的 Trace ID、用户信息等。
-
控制请求的超时和取消:通过控制 Context 的超时和取消,可以避免请求处理时间过长,从而提高系统的稳定性和可靠性。
-
管理 Goroutine:Context 可以用来管理 Goroutine 的生命周期,当 Context 被取消时,所有由该 Context 创建的 Goroutine 都应该退出。
用法:
-
创建 Context:使用
context.Background()可以创建一个空 Context,也可以使用context.WithValue()、context.WithTimeout()、context.WithDeadline()、context.WithCancel()等函数来创建含有特定属性的 Context。 -
传递 Context:将 Context 作为参数传递给请求处理函数,并在函数中使用它来获取请求相关的信息或控制请求的超时和取消。
-
监听 Context 取消信号:使用
Context.Done()方法监听 Context 是否被取消,如果被取消则可以执行一些清理操作。 -
嵌套 Context:可以使用
context.WithValue()函数将一个 Context 嵌套在另一个 Context 中,这样可以在子 Context 中传递额外的请求信息。
原文地址: https://www.cveoy.top/t/topic/n65w 著作权归作者所有。请勿转载和采集!