美文网首页
context与任务取消

context与任务取消

作者: MrBryan | 来源:发表于2021-04-09 22:52 被阅读0次
    package channel_close
    
    import (
        "context"
        "fmt"
        "testing"
        "time"
    )
    
    func isCancelled(ctx context.Context) bool {
        select {
        case <-ctx.Done():
            return true
    
        default:
            return false
        }
    }
    
    func TestCancel(t *testing.T) {
        ctx, cancel := context.WithCancel(context.Background())
    
        for i := 0; i < 5; i++ {
            go func(i int, ctx context.Context) {
                for {
                    if isCancelled(ctx) {
                        break
                    }
                    time.Sleep(time.Millisecond * 5)
                }
                fmt.Println(i, "Cancelled")
            }(i, ctx)
        }
        cancel()
    
        time.Sleep(time.Second * 1)
    
    }
    
    

    相关文章

      网友评论

          本文标题:context与任务取消

          本文链接:https://www.haomeiwen.com/subject/wixgkltx.html