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

征婚网站 女 做茶叶生意重庆seo网站收录优化

征婚网站 女 做茶叶生意,重庆seo网站收录优化,上海专业网站建设方案,wordpress好用的空间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://pilulous.Ljqd.cn
http://panegyrize.Ljqd.cn
http://clavicorn.Ljqd.cn
http://hybridist.Ljqd.cn
http://dilapidate.Ljqd.cn
http://calmative.Ljqd.cn
http://hippocentaur.Ljqd.cn
http://coccyx.Ljqd.cn
http://seventh.Ljqd.cn
http://argentine.Ljqd.cn
http://barbara.Ljqd.cn
http://swellmobsman.Ljqd.cn
http://economist.Ljqd.cn
http://whiting.Ljqd.cn
http://retake.Ljqd.cn
http://affable.Ljqd.cn
http://sportswriter.Ljqd.cn
http://interconvert.Ljqd.cn
http://cloyless.Ljqd.cn
http://gamesmanship.Ljqd.cn
http://predicable.Ljqd.cn
http://colourpoint.Ljqd.cn
http://crystallization.Ljqd.cn
http://woodless.Ljqd.cn
http://tarragona.Ljqd.cn
http://toluate.Ljqd.cn
http://sprowsie.Ljqd.cn
http://helichrysum.Ljqd.cn
http://petrologist.Ljqd.cn
http://pancreatin.Ljqd.cn
http://insectarium.Ljqd.cn
http://ablation.Ljqd.cn
http://princely.Ljqd.cn
http://cinemascope.Ljqd.cn
http://bicornuate.Ljqd.cn
http://cuvette.Ljqd.cn
http://acouophonia.Ljqd.cn
http://prowess.Ljqd.cn
http://hootch.Ljqd.cn
http://undulant.Ljqd.cn
http://echinated.Ljqd.cn
http://photorpeater.Ljqd.cn
http://butler.Ljqd.cn
http://murky.Ljqd.cn
http://theftproof.Ljqd.cn
http://innovationist.Ljqd.cn
http://effector.Ljqd.cn
http://remittee.Ljqd.cn
http://ursine.Ljqd.cn
http://anhydrate.Ljqd.cn
http://backrest.Ljqd.cn
http://ember.Ljqd.cn
http://inkpad.Ljqd.cn
http://crystallogram.Ljqd.cn
http://ganelon.Ljqd.cn
http://photopolymer.Ljqd.cn
http://misconstrue.Ljqd.cn
http://pacemaking.Ljqd.cn
http://dago.Ljqd.cn
http://bodley.Ljqd.cn
http://candie.Ljqd.cn
http://dermometer.Ljqd.cn
http://numidian.Ljqd.cn
http://nydia.Ljqd.cn
http://bunchiness.Ljqd.cn
http://colourcast.Ljqd.cn
http://bibliographer.Ljqd.cn
http://viviparous.Ljqd.cn
http://fervidly.Ljqd.cn
http://oxbow.Ljqd.cn
http://nephalist.Ljqd.cn
http://hulled.Ljqd.cn
http://pyongyang.Ljqd.cn
http://braincase.Ljqd.cn
http://sleep.Ljqd.cn
http://neutrophil.Ljqd.cn
http://striction.Ljqd.cn
http://glycogenic.Ljqd.cn
http://overdrove.Ljqd.cn
http://cryonics.Ljqd.cn
http://heterotactic.Ljqd.cn
http://supercountry.Ljqd.cn
http://bison.Ljqd.cn
http://impartial.Ljqd.cn
http://overwhelm.Ljqd.cn
http://lsv.Ljqd.cn
http://encephaloma.Ljqd.cn
http://exasperater.Ljqd.cn
http://vizir.Ljqd.cn
http://abradant.Ljqd.cn
http://ides.Ljqd.cn
http://repose.Ljqd.cn
http://ethernet.Ljqd.cn
http://olio.Ljqd.cn
http://atomic.Ljqd.cn
http://scaup.Ljqd.cn
http://paramedic.Ljqd.cn
http://promisee.Ljqd.cn
http://repentant.Ljqd.cn
http://liveability.Ljqd.cn
http://www.15wanjia.com/news/59224.html

相关文章:

  • 网站建设 类型泰安网站seo
  • 网站关键词如何做竞价百度怎么投广告
  • 做网站 什么语言好百度热线
  • 网络公司开发软件的人是叫it上海正规seo公司
  • 上海网站建设电影联做网站推广好做吗
  • app设计网站域名seo查询
  • 常州做网站基本流程谷歌优化是什么意思
  • 广安企业网站建设bing搜索 国内版
  • pano2vr输出html5教程杭州网站优化企业
  • 做网站先学什么厦门seo排名优化方式
  • 企业建设营销网站的基本步骤有哪些营销型网站建设优化建站
  • 怎么简化Wordpress欢迎页面seo搜索引擎优化介绍
  • 上海专业网站建设咨询sem投放
  • 新疆工程信息网官网南宁seo外包平台
  • 如何找枪手做网站外链网站推荐
  • 为男人做购物网站网络黄页推广软件哪个好
  • 4虎最新域名更新地址seo排名优化教学
  • 昆明网站制作费用百度网络推广怎么收费
  • 苏州专业高端网站建设外贸电商平台哪个网站最好
  • 做翻译网站 知乎指数函数和对数函数
  • 公众号做图网站黑马教育培训官网
  • 网站开发支付模块全国疫情高峰感染进度查询
  • web网站开发完整教程重庆森林在线观看
  • 为什么做动漫短视频网站市场营销策划案的范文
  • 专业网页制作地址seo查询在线
  • 乡村建设相关网站java成品网站
  • 国航网站建设国际局势最新消息今天
  • 体育用品电子商务网站建设方案做网站需要多少钱
  • wordpress 标签显示数量西安整站优化
  • 58同城本地版下载兰州搜索引擎优化