MST

星途 面试题库

面试题:Go中基于channel实现简单生产者消费者模式

请用Go语言编写代码实现一个简单的基于channel的生产者消费者模式。生产者生成1到100的整数,消费者从channel读取数据并打印。要求使用goroutine来实现并发,并且需要正确处理channel的关闭以避免死锁和数据竞争。
15.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func producer(ch chan int) {
    for i := 1; i <= 100; i++ {
        ch <- i
    }
    close(ch)
}

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

func main() {
    ch := make(chan int)

    go producer(ch)
    go consumer(ch)

    select {}
}