01 / 05准备播放
每轮先拿到一对 context
cancel 是通知入口,不是强杀按钮
CONTEXT CANCELLATION / 协作取消一轮运行的取消入口
当前步骤通知已建立future.go · 31–33SOURCE真实代码与最小示例
关键行
func newRun(ctx context.Context, r *Runner, enabled bool) *runState {
ctx, cancel := context.WithCancel(ctx)
return &runState{runner: r, ctx: ctx, cancel: cancel, enabled: enabled, futures: make(map[uint32]*future)}
}
context 是信号通道;它不强杀 goroutine。
下游不检查 ctx,就不会凭空退出。
旁白
点一下播放即可。也可以只听声音,或拖动进度跳到想看的位置。
0:001:29
正在准备本课音轨与图解。首次播放需要点一下。