zoukankan      html  css  js  c++  java
  • Go入门笔记-9 Go Context

    1、代码,可以通过Context关闭任务

    package main
    
    import (
    	"context"
    	"fmt"
    	"time"
    )
    
    func main() {
    	ctx1, cancel1 := context.WithCancel(context.Background())
    	ctx2, cancel2 := context.WithCancel(context.Background())
    	ctx3, _ := context.WithCancel(context.Background())
    	go watch(ctx1, "任务1")
    	go watch(ctx2, "任务2")
    	go watch(ctx3, "任务3")
    	time.Sleep(3 * time.Second)
    	cancel1()
    	cancel2()
    	time.Sleep(3 * time.Second)
    }
    func watch(ctx context.Context, name string) {
    	for {
    		select {
    		case <-ctx.Done():
    			fmt.Println(name, "exited..")
    			return
    		default:
    			fmt.Println(name, "runing...")
    			time.Sleep(2 * time.Second)
    		}
    	}
    }
    

    2、执行结果

    任务3 runing...
    任务1 runing...
    任务2 runing...
    任务3 runing...
    任务1 runing...
    任务2 runing...
    任务1 exited..
    任务3 runing...
    任务2 exited..
    任务3 runing...

      

    本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。
    另外建了几个QQ技术群:
    2、全栈技术群:616945527,加群口令abc123
    2、硬件嵌入式开发: 75764412
    3、Go语言交流群:9924600

    闲置域名www.nsxz.com出售(等宽等高字符四字域名)。
  • 相关阅读:
    骑士飞行棋 C#代码详解
    C#中的static静态变量的用法
    Break和Continue的一些注意事项
    枚举类型
    html 01-认识Web和Web标准
    css 17-CSS3的常见边框汇总
    css 16-浏览器的兼容性问题
    css 15-Sass入门
    css 14-CSS3属性详解:Web字体
    css 13-CSS3属性:Flex布局图文详解
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/15058497.html
Copyright © 2011-2022 走看看