当前位置: 首页 > news >正文

dw做的网站解压后为什么没了高级感ppt模板

dw做的网站解压后为什么没了,高级感ppt模板,多人运动免费正能量网站链接,wordpress 多站点迁移文章目录一、为什么需要context二、context 接口三、Background 方法四、 with 系列函数1、WithCancel 方法2、WithDeadline 方法3、WithTimeout 方法4、WithValue 方法五、使用注意事项一、为什么需要context 在 Go http包的Server中,每一个请求在都有一个对应的 …

文章目录

  • 一、为什么需要context
  • 二、context 接口
  • 三、Background 方法
  • 四、 with 系列函数
    • 1、WithCancel 方法
    • 2、WithDeadline 方法
    • 3、WithTimeout 方法
    • 4、WithValue 方法
  • 五、使用注意事项

一、为什么需要context

在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。

用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止时间。 当一个请求被取消或超时时,所有用来处理该请求的 goroutine 都应该迅速退出,然后系统才能释放这些 goroutine 占用的资源。

二、context 接口

context.Context是一个接口,该接口定义了四个需要实现的方法。

语法:


type Context interface {Deadline() (deadline time.Time, ok bool)Done() <-chan struct{}Err() errorValue(key interface{}) interface{}
}方法解释:Deadline():返回当前Context被取消的时间,也就是完成工作的截止时间(deadline);Done():返回一个Channel,这个Channel会在当前工作完成或者上下文被取消之后关闭,多次调用Done方法会返回同一个Channel;Err():返回当前Context结束的原因,它只会在Done返回的Channel被关闭时才会返回非空的值;如果当前Context被取消就会返回Canceled错误;如果当前Context超时就会返回DeadlineExceeded错误;Value():从Context中返回键对应的值,对于同一个上下文来说,多次调用Value 并传入相同的Key会返回相同的结果;

三、Background 方法

语法:


context.Background() Context

分析: Background()主要用于main函数、初始化以及测试代码中,作为Context这个树结构的最顶层的Context,也就是根Context。

四、 with 系列函数

1、WithCancel 方法

WithCancel返回带有新Done通道的父节点的副本。当调用返回的cancel函数或当关闭父上下文的Done通道时,将关闭返回的上下文的Done通道。

语法:


func WithCancel(parent Context) (ctx Context, cancel CancelFunc)

2、WithDeadline 方法

返回父上下文的副本,并将deadline调整为不迟于d。如果父上下文的deadline已经早于d,则WithDeadline(parent, d)在语义上等同于父上下文。当截止日过期时或调用返回的cancel函数时或当父上下文的Done通道关闭时,返回上下文的Done通道将被关闭,以最先发生的情况为准。

语法:


func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc)

3、WithTimeout 方法

WithTimeout返回WithDeadline(parent, time.Now().Add(timeout))

语法:


func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc)

4、WithValue 方法

WithValue函数能够将请求作用域的数据与 Context 对象建立关系。WithValue返回父节点的副本,其中与key关联的值为val。

语法:


func WithValue(parent Context, key, val interface{}) Context 

五、使用注意事项

  1. 推荐以参数的方式显示传递Context
  2. 以Context作为参数的函数方法,应该把Context作为第一个参数。
  3. 给一个函数方法传递Context的时候,不要传递nil,如果不知道传递什么,就使用context.Background()
  4. Context的Value相关方法应该传递请求域的必要数据,不应该用于传递可选参数
  5. Context是线程安全的,可以放心的在多个goroutine中传递
http://www.yayakq.cn/news/710151/

相关文章:

  • 兰州哪有建设网站的企业网站推广技术
  • 竹子建站登录做优化网站建设
  • 网站建设前准备工作linux wordpress nginx
  • 郑州网站建设网站担路网口碑做网站好吗
  • 广州网站优化排名厦门网站制作维护
  • 做网站站长累吗个人如何做商城网站
  • 自学摄影教程的网站有哪些网站建设和推广的话术
  • 有好点的做网站的公司吗零起步如何做设计师
  • 网站icp备案信息是什么网站设计建设代理机构
  • 南宁企业自助建站网站使用微信支付
  • 太原如何做百度的网站东莞美食网站建设报价
  • 备案期间 网站想正常教育局门户网站建设目的
  • 怎样上网站建设软件开发工具有哪些
  • 网站网络营销怎么做管理信息系统开发
  • 长沙大型网站建设公司网站创建
  • 中信建设有限责任公司属于央企吗wordpress seo代码
  • 房地产网站模板 下载昌乐营销型网站建设
  • 山西中小学网站建设南通市网站建设我的完
  • 无域名网站 能否被百度网站建设公司一月赚多少
  • 网站布局框架城阳网站建设
  • 起点签约的书网站给做封面吗有赞商城小程序入口
  • 常州制作网站软件服装网站设计模板
  • 酒店网站设计方案长沙室内设计公司排名
  • 网站access数据库被攻击不断增大怎样登录沈阳科技网站
  • 网站制作流程详解(学做网站第一步)ai网页生成
  • 智能建站的优势和不足网站开发要写代码吗
  • 用c 来建设网站海南百度竞价推广
  • 永康市网站建设制作家里的电脑ip做网站
  • 辅助网站怎么做的东至县住房和城乡建设网站
  • 福建省建设监理公司网站电商网站