Go语言标准库之context
为什么需要Context 基本示例 package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup // 初始的例子 func worker() { for { fmt.Println("worker") time.Sleep(time.Second) } // 如何接收外部命令实现退出 wg.Done() } func main() { wg.Add(1) go worker() // 如何优雅的实现结束子goroutine wg.Wait() fmt.Println("over") } 全局变量方式 package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup var exit bool // 全局变量方式存在的问题: // 1. 使用全局变量在跨包调用时不容易统一 // 2. 如……