C盘满了怎么清理?磁盘空间分析与系统清理完整指南
2026/8/30 17:21:26
在 Go 语言中,通道(Channels)能够轻松处理多消费者从单生产者接收数据,或单消费者从多生产者接收数据的场景。
这种情况较为简单,示例代码如下:
func main() { // one producer var ch = make(chan int) go func() { for i := 0; i < 100; i++ { ch <- i } close(ch) }() // one consumer var done = make(chan struct{}) go func() { for i := range ch { fmt.Println(i) } close(done) }() <-done }完整示例: https://play.golang.org/p/hNgehu62kjv
多个生产者可以使用sync.WaitGroup来处理,所有的 goroutine 共享同一个通道。示例代码如下: