MST

星途 面试题库

面试题:Go中生产者消费者模型的通道使用

请用Go语言实现一个简单的生产者消费者模型,生产者每隔1秒生成一个数字,消费者消费这些数字并打印出来。要求使用通道(channel)来传递数据,同时处理好生产者和消费者的同步问题。
18.4万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "time"
)

func producer(ch chan int) {
    for i := 0; ; i++ {
        ch <- i
        time.Sleep(time.Second)
    }
}

func consumer(ch chan int) {
    for num := range ch {
        fmt.Println("Consumed:", num)
    }
}

func main() {
    ch := make(chan int)
    go producer(ch)
    go consumer(ch)
    // 防止主线程退出
    select {}
}