烹饪方式设计
烹饪方式优化
代码示例
多协程生命周期
代码示例
package _main _import (
“context” “sync” “fmt”)
_func _main() {
_// 初始化一个context _parent := context.Background()
_// 生成一个取消的context _ctx, cancel := context.WithCancel(parent)
runTimes := 0 _var _wg sync.WaitGroup wg.Add(1)
go func(ctx context.Context) {
_for _{_select _{_case _<-ctx.Done():fmt.Println("Goroutine Done")_return default_:fmt.Printf("Goroutine Running Times : %d\n",runTimes)runTimes = runTimes + 1 }_if _runTimes > 5 {cancel()wg.Done()}}}(ctx)
wg.Wait()
fmt.Println(“main Done !”)
}








