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

宁波市节约型机关建设考试网站wordpress 个人写作

宁波市节约型机关建设考试网站,wordpress 个人写作,浏览器无法跳转二级页面,六十岁一级a做爰片免费网站文章目录背景简介主要方法获得顶级上下文当前协程上下文的操作创建下级协程的Context场景示例背景 在父子协程协作过程中, 父协程需要给子协程传递信息, 子协程依据父协程传递的信息来决定自己的操作. 这种需求下可以使用 context 包 简介 Context通常被称为上下文#xff… 文章目录背景简介主要方法获得顶级上下文当前协程上下文的操作创建下级协程的Context场景示例背景 在父子协程协作过程中, 父协程需要给子协程传递信息, 子协程依据父协程传递的信息来决定自己的操作. 这种需求下可以使用 context 包 简介 Context通常被称为上下文在go中上层的协程可以将context 传给下层的协程, 来实现协程之间的信息传递, 同时下层协程也可以将context 传给更下层的协程, 来形成一张树状图. 主要方法 获得顶级上下文 首先要获得最顶级协程使用的Context func Background() Context Background 方法一般创建根 Context 的时候。 func TODO() Context TODO 方法当不清楚使用哪个上下文时可以使用 TODO 方法。 当前协程上下文的操作 针对 Context 可以执行如下操作. Deadline() (deadline time.Time, ok bool) Deadline 方法返回结果有两个第一个是截止时间到了这个截止时间Context 会自动取消第二个是一个 bool 类型的值如果 Context 没有设置截止时间第二个返回结果是 false如果需要取消这个 Context就需要调用取消函数。 Done() -chan struct{} Done 方法返回一个只读的 channel 对象类型是 struct{}在 goroutine 中如果 Done 方法返回的结果可以被读取代表父 Context 调用了取消函数。 Err() error Err 方法返回 Context 被取消的原因。 Value(key interface{}) interface{} Value 方法返回此 Context 绑定的值。它是一个 kv 键值对通过 key 获取对应 value 的值 创建下级协程的Context 我们要依据父级的协程的Context创建子级协程的Context WithCancel(parent Context) (ctx Context, cancel CancelFunc) WithCancel 方法基于父 Context接收一个父 Context 参数生成一个新的子 Context和一个 cancel 函数用于取消 Context。 WithDeadline(parent Context, d time.Time) (Context, CancelFunc) WithDeadline 方法基于父 Context接收一个父 Context 参数和一个截止时间的参数生成一个新的子 Context和一个 cancel 函数可以使用 cancel 函数取消 Context也可以等到截止时间自动取消 Context。 WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) WithTimeout 方法基于父 Context接收一个父 Context 参数和一个超时时间的参数生成一个新的子 Context和一个 cancel 函数可以使用 cancel 函数取消 Context也可以等到超时时间自动取消 Context。 WithValue(parent Context, key, val interface{}) Context WithValue 方法基于父 Context生成一个新的子 Context携带了一个 kv 键值对一般用于传递上下文信息。 场景示例 公司下班, 要领导下班后, 员工才下班, 但是员工忍耐也是有限度的, 领导老是不下班, 员工就自己走了. package mainimport (contextfmttime )var name stringfunc main() {// 顶级Conxt, 领导up_context : context.Background()// 创建领导的下级 员工的的Context, 员工就最多加班5秒, 超过5秒领导不下班. 员工就下班了ctx, cancle : context.WithTimeout(up_context, time.Second*5)go work(ctx, 小卡拉)// 父线程等待3秒, 领导加班3秒time.Sleep(time.Second * 3)fmt.Println(time.Now().Format(2006-01-02 15:04:05), 领导下班了!)// 领导下班调用cancle(), 取消员工的 Contextcancle()time.Sleep(time.Second * 5) }func work(ctx context.Context, name string) {for {select {// 看看员工的 Context 还在不在case -ctx.Done():fmt.Println(time.Now().Format(2006-01-02 15:04:05), name, 下班)returndefault:fmt.Println(time.Now().Format(2006-01-02 15:04:05), name, 加班!。)time.Sleep(time.Second * 1)}} }上面的代码中up_context 是最顶级的 Context 是使用context.Background()创建出来的, 员工的 Context对象 ctx 则是使用最顶级的up_context 并且使用WithTimeout方法创建出来的, 表示如果5秒内不调用返回的 cancel 方法, 就会自动取消, 对应员工最多等待领导五秒. 上面的执行结果是: 可以看到, 领导就加班了3秒, 领导一下班, 员工就下班了. 如果领导加班7秒呢, 代码改成如下 package mainimport (contextfmttime )var name stringfunc main() {// 顶级Conxt, 领导up_context : context.Background()// 创建领导的下级 员工的的Context, 员工就最多加班5秒, 超过5秒领导不下班. 员工就下班了ctx, cancle : context.WithTimeout(up_context, time.Second*5)go work(ctx, 小卡拉)// 父线程等待7秒, 领导加班7秒time.Sleep(time.Second * 7)fmt.Println(time.Now().Format(2006-01-02 15:04:05), 领导下班了!)// 领导下班调用cancle(), 取消员工的 Contextcancle()time.Sleep(time.Second * 5) }func work(ctx context.Context, name string) {for {select {// 看看员工的 Context 还在不在case -ctx.Done():fmt.Println(time.Now().Format(2006-01-02 15:04:05), name, 下班)returndefault:fmt.Println(time.Now().Format(2006-01-02 15:04:05), name, 加班!。)time.Sleep(time.Second * 1)}} } 执行结果如下 可以看到, 领导加班7秒, 员工并没有等着领导下班, 在第五秒的时候自己下班了.
http://www.hkea.cn/news/14409004/

相关文章:

  • 建设网站的目的及功能wordpress经典编辑器插件
  • 网站系统中备案申请表女装小说WordPress
  • 网站流量排名网站排名软件 利搜
  • 都匀网站建设公司wordpress 用户上传文件
  • 合肥制作网站的公司apache搭建多个网站
  • 毕业设计网站代做多少钱网站被k十大原因
  • 专做丰田车货款的网站小程序开发平台好的有哪些
  • 心理咨询网站php后台一般需要哪些模块在线做logo
  • vs2010 网站开发pc网站如何做移动网站
  • 网站关键词下降合肥微网站制作
  • 郴州网站建设公司电话杭州做网站要多少钱
  • 关于网站建设的博客wordpress模板修改图片大小
  • 做网站教学书我们常见的网站有哪些方面
  • 如何看客户网站开发客户门户网站代码
  • 专业平台网站建设网页设计师简历模板
  • 苏州网站制作开发公司互联网人工智能
  • 有什么专业做心理的网站wordpress优化打开速度插件
  • 活动策划网站有哪些页面设计图片大全
  • 五金制品东莞网站建设技术支持用vps刷网站流量要怎么做
  • 杭州网站运营深圳宝安高端网站建设
  • 亚马逊网站 如何做站内seo株洲网站平台搭建
  • 飞速网站排名wordpress 下载失败
  • 网站在百度的图标显示不正常显示网站建设反馈书模板
  • 找人做jsp网站wordpress dux主题设置首页
  • 门户网站seo怎么二次开发wordpress
  • 用手机怎么做免费网站大连网页设计哪家好
  • 网站制作精品案例欣赏网页设计与制作的实训报告
  • 用凡科做的手机网站版注册安全工程师白考了
  • 淘客网站app建设北流科技网站建设
  • wordpress用户名忘了移动网站怎么做优化