服务咨询热线:

022-88711099

当前位置:

《Go语言四十二章经》第三十七章 context包

发布时间:2019-11-28 作者:李骁 访问量:2497

《Go语言四十二章经》第三十七章 context包

37.1 context包

在Go中,每个请求的request在单独的协程中进行,处理一个request也可能涉及多个协程之间的交互。一个请求衍生出的各个协程之间需要满足一定的约束关系,以实现一些诸如有效期,中止routine树,传递请求全局变量之类的功能。于是Go为我们提供一个解决方案,标准context包。使用context可以使开发者方便的在这些协程之间传递request相关的数据、取消协程的signal或截止时间等。

每个协程在执行之前,都要先知道程序当前的执行状态,通常将这些执行状态封装在一个Context变量中,传递给要执行的协程中。上下文则几乎已经成为传递与请求同生存周期变量的标准方法。在网络编程下,当接收到一个网络请求Request,处理Request时,我们可能