您当前的位置: 首页 > 

衣舞晨风

暂无认证

  • 1浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Go 并发 : Context

衣舞晨风 发布时间:2020-06-13 19:24:20 ,浏览量:1

翻译自:Go Concurrency Patterns: Context地址:https://blog.golang.org/context

简介

在Go server端,每个请求都是通过新起goroutine来处理。请求处理程序通常会启动其他goroutine来访问后端,例如数据库和RPC服务。处理该请求的goroutine集合通常需要访问特定于请求的值,例如最终用户的身份,授权令牌和请求的时限。当一个请求被取消或超时时,处理该请求的所有goroutine应该迅速退出,以便系统可以回收他们正在使用的资源。

在Google,我们开发了一个Context包,可以轻松地跨API边界将请求范围(request-scoped)的值,取消信号和截止日期(deadlines)传递给处理请求的所有goroutine。该软件包可作为Context公开使用。本文将介绍如何使用该package。

Context

Context包的核心是Context类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Context跨API边界携带期限(deadline)、取消信号和请求范围(request-scoped)的值。Context的方法是协程安全的。
type Context interface {
    // Done返回一个channel,该channel在Context被取消或超时时关闭。
    Done()             
关注
打赏
1647422595
查看更多评论
0.0405s