程序员社区

context使用

package main

import (
    "context"
    "log"
    "os"
    "time"
)

var logg *log.Logger

func someHandler() {
    ctx, cancel := context.WithCancel(context.Background())
    go doStuff(ctx)

    time.Sleep(10 * time.Second)
    log.Println("cancel")
    cancel()
}

func doStuff(ctx context.Context) {
    for {
        time.Sleep(1 * time.Second)
        select {
        case <-ctx.Done():
            logg.Printf("done")
            return
        default:
            logg.Printf("work")

        }
    }
}

func main() {
    logg = log.New(os.Stdout, "ERROR ", log.Ltime)
    someHandler()
    logg.Printf("down")
}

赞(0) 打赏
未经允许不得转载:IDEA激活码 » context使用

一个分享Java & Python知识的社区