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

征婚网站 女 做茶叶生意seo技术培训泰州

征婚网站 女 做茶叶生意,seo技术培训泰州,武汉市内做网站的公司,西安三网合一网站建设Context 介绍 Context 代表了协程的上下文,用以在父子协程之间传递控制信号,共享变量等操作// context.Context 接口 type Context interface {// 当Context自动取消或者到了取消时间被取消后返回Deadline() (deadline time.Time, ok bool)// 当Contex…

Context

介绍

Context 代表了协程的上下文,用以在父子协程之间传递控制信号,共享变量等操作// context.Context 接口
type Context interface {// 当Context自动取消或者到了取消时间被取消后返回Deadline() (deadline time.Time, ok bool)// 当Context被取消或者到了deadline返回一个被关闭的channelDone() <-chan struct{}// 当Context被取消或者关闭后,返回context取消的原因Err() error// 获取 Context 中保存的键值对数据Value(key any) any
}

使用 WithValue() 传递数据

func A(ctx context.Context) context.Context {time.Sleep(1 * time.Second)fmt.Println("A: ", ctx.Value("main"))ctx = context.WithValue(ctx, "A", "A-1")go B(ctx)return ctx
}func B(ctx context.Context) context.Context {time.Sleep(1 * time.Second)fmt.Println("B: ", ctx.Value("main"))fmt.Println("B: ", ctx.Value("A"))return ctx
}func main() {ctx := context.WithValue(context.Background(), "main", "main-1")go A(ctx)time.Sleep(3 * time.Second)
}

使用 WithCancel() 取消操作

func main() {ctx, cancel := context.WithCancel(context.Background())go Speak(ctx)time.Sleep(3 * time.Second)cancel()time.Sleep(1 * time.Second)
}func Speak(ctx context.Context) {for range time.Tick(time.Second) {select {case <-ctx.Done():fmt.Println("我要闭嘴了")returndefault:fmt.Println("balabalabalabala")}}
}

使用 WithDeadline() 设置截止时间

使用 WithTimeout() 设置超时时间

withTimeout和withDeadline作用是一样的,就是传递的时间参数不同,会通过传入的时间来自动取消Context,都会返回一个cancelFunc方法,通过调用这个方法可以达到提前进行取消
使用的过程还是建议在自动取消后也调用cancelFunc去停止定时减少不必要的资源浪费
func A(in chan struct{}) {time.Sleep(1 * time.Second)in <- struct{}{}
}func B(in chan struct{}) {time.Sleep(3 * time.Second)in <- struct{}{}
}func main() {var ch1 = make(chan struct{})var ch2 = make(chan struct{})var ctx, cancel = context.WithTimeout(context.Background(), 2*time.Second)go func() {go A(ch1)select {case <-ctx.Done():fmt.Println("ctx timeout")breakcase <-ch1:fmt.Println("A Done")}}()go func() {go B(ch2)select {case <-ctx.Done():fmt.Println("ctx timeout")breakcase <-ch2:fmt.Println("B Done")}}()defer cancel()time.Sleep(5 * time.Second)
}
http://www.tj-hxxt.cn/news/110207.html

相关文章:

  • 阿里巴巴网站怎样做的漂亮关键词排名查询工具
  • 深圳企业建站高性价比的选择做网站多少钱一年
  • 美橙网站建设东莞seo建站如何推广
  • 网站优化首页付款bt种子bt天堂
  • 网站建设费的摊销四川seo哪里有
  • 政府网站 建设管理自查报告百度搜索推广是什么
  • 网站建设与管理试题及答案恶意点击竞价时用的什么软件
  • 建站abc模板最近发生的热点事件
  • 广告收益平台seo如何提升排名收录
  • 成都网站建设找亮帅网站推广是干嘛的
  • 哪里有微信网站建设域名ip地址在线查询
  • 网站的站点地图怎么做网络营销推广方法和手段
  • 怎样快速建设网站模板网站怎么做的
  • wordpress调用文章描述西安网络seo公司
  • 网站添加qq在线客服手机app免费下载
  • 网站建设中 敬请期待 源码营销策略分析
  • 福州做网站建设企业培训课程分类
  • 用淘宝做公司网站百度竞价系统
  • flash做ppt的模板下载网站网络推广哪个平台最好
  • 公司设计图图片简笔画优化官网咨询
  • 怎么做搜索网站环球网广东疫情最新消息
  • 网站开发组织架构设计师必备的6个网站
  • 中小企业外贸网站建设现状培训机构是干什么的
  • 网站开发支付功能竞价排名什么意思
  • 请别人做网站有风险吗免费b2b
  • wordpress镜像搭建aso如何优化
  • 做代账的网站爱链工具
  • 广州网页制作网站维护seo怎么做优化计划
  • 网站建设在开封找谁做广州营销优化
  • 怎么才能百度做网站seo推广怎么做视频教程