Go 入门:WaitGroup 不只等待,还要收好结果
sync.WaitGroup 是 Go 并发入门必学工具。它的职责很简单:等一组 goroutine 做完。但真实代码里,等待只是第一步。你还要拿到每个任务的结果、处理错误、控制并发数量,并保证 channel 正确关闭。很多初学者会写出“能等完,但结果偶尔丢失或死锁”的代码。
tag
sync.WaitGroup 是 Go 并发入门必学工具。它的职责很简单:等一组 goroutine 做完。但真实代码里,等待只是第一步。你还要拿到每个任务的结果、处理错误、控制并发数量,并保证 channel 正确关闭。很多初学者会写出“能等完,但结果偶尔丢失或死锁”的代码。
全面讲解Go语言中生产者-消费者模式的多种实现方式,从无缓冲到有缓冲channel,涵盖优雅关闭、背压处理和性能优化等工程实践
深入讲解 Go Channel 的底层 hchan 结构、有缓冲与无缓冲 channel 的语义差异、select 多路复用机制,以及 Fan-In、Fan-Out、Pipeline 等经典并发模式与最佳实践
Rust 异步编程全貌:async/await 语法糖背后的 Poll 模型、Tokio 运行时架构、Channel 通信模式、并发安全 trait(Send/Sync)、流处理(Stream/Sink)与背压控制、真实高并发服务器实现。
用批量处理任务讲 Go channel 流水线的基础写法,包括生产者、工作者、结果汇总、context 取消和 channel 关闭规则,以及多级流水线、背压控制和超时处理。
本文用并发抓取、超时取消和 worker 池示例讲解 Go 的 goroutine、channel、select、WaitGroup 和 context。