-
Go 中把 range 变量直接交给 goroutine 闭包,常会让多个异步任务读到同一个值。本文用可复现代码拆开捕获时机、参数传递和验收方法,给出适合生产代码的修复边界。
-
Go 服务收到请求取消后,如何让审计写入、指标上报等短收尾任务继续完成?用 context.WithoutCancel 保留值但切断取消信号,并补上独立超时。
-
Go 中复用 time.Timer 时,Reset 之前必须先处理可能残留的通道信号;否则循环可能立刻走旧分支。本文用一个可运行的轮询例子说明 Stop、<-timer.C、Reset 和 ctx.Done 的边界。