在 Go 语言中,可以使用 goroutinechannel 实现生产者消费者模型。下面是一个简单的示例代码: ```go package main import ( "fmt" "time" ) func producer(ch chan<- int) { for i := 0; i < 10; i++ { ch <- i fmt.Println("生产者生产:", i) time.Sleep(time.Second) } close(ch) } func consumer(ch <-chan int) { for v := range ch { fmt.Println("消费者消费:", v) time.Sleep(time.Second) } } func main() { ch := make(chan int) go producer(ch) go consumer(ch) time.Sleep(10 * time.Second) } ``` 在上面的代码中,我们定义了两个函数 `producer` 和 `consumer`。`producer` 函数会不断地向通道 `ch` 中发送数据,而 `consumer` 函数会不断地从通道 `ch` 中接收数据,并进行消费。在 `main` 函数中,我们启动了两个 goroutine,分别执行 `producer` 和 `consumer` 函数。 需要注意的是,我们在 `producer` 函数中使用了 `close(ch)` 来关闭通道。这样做的目的是告诉消费者已经没有数据需要消费了。 执行上面的代码,可以看到生产者不断地向通道中发送数据,而消费者不断地从通道中接收数据,并进行消费。如果你想让程序一直运行下去,可以将 `time.Sleep(10 * time.Second)` 改为 `select {}`。