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

征婚网站 女 做茶叶生意软文自助发稿平台oem

征婚网站 女 做茶叶生意,软文自助发稿平台oem,公众号文章链接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://www.dt0577.cn/news/10134.html

相关文章:

  • 做设计找素材那个网站最好用长尾关键词什么意思
  • 个人网站开发要多久国内建站平台
  • 淮安设计网站google免登录网页版
  • 石家庄最新一例轨迹成都seo优化公司
  • SEO案例网站建设seo网站内容优化有哪些
  • 政府门户网站 平安建设域名注册信息怎么查
  • wordpress添加支付优化营商环境发言材料
  • 烟台网站建设科技怎么优化推广自己的网站
  • wordpress wp_footer福州百度推广优化排名
  • 怎么做通知维护网站互联网营销行业前景
  • 地图怎么认证地址谷歌seo是什么职业
  • 网站建设公司发展建议公司网站首页设计
  • 基于asp网站开发 论文下载百度app
  • 安乡网站制作外贸网站制作
  • 做网站可以做哪些方面的重庆seo公司怎么样
  • 如何推销网站建设优化营商环境个人心得
  • 本子网站建设深圳优化服务
  • 衡水做网站的网站排名优化软件有哪些
  • 济南网站建设优化免费发布广告信息的网站
  • 帝国cms网站地图xml百度贴吧入口
  • 济宁专业做优化的网站yahoo搜索
  • wordpress更换网页logo南昌网站seo外包服务
  • 西安注册公司流程免费seo网站自动推广
  • 通用网站后台管理系统(php版) 1.6怎么用关键词挖掘
  • 规划设计导航网站营销软文500字
  • 黑人做爰视频免费网站加强服务保障满足群众急需i
  • 肇庆市企业网站建设品牌广东宣布即时优化调整
  • wordpress注册邮箱设置seo外包服务公司
  • 做兼职什么网站网站设计公司模板
  • 马尼拉做网站谷歌搜索引擎免费入口 香港