chanchan
package main
import (
"fmt"
"time"
)
func producer(out chan<- int) {
for i := 0; i < 10; i++ {
out <- i
}
close(out)
}
func consumer(in <-chan int, id int) {
for num := range in {
fmt.Printf("consumer %d received %d\n", id, num)
time.Sleep(time.Second)
}
}
func main() {
// 创建一个通道,用于生产者向消费者发送数据
data := make(chan int)
// 启动一个生产者
go producer(data)
// 启动多个消费者
for i := 0; i < 3; i++ {
go consumer(data, i)
}
// 阻塞主 goroutine,避免程序退出
select {}
}
produceroutconsumerinmaindatadatadatamainselect{}
closeclose