面试题答案
一键面试package main
import (
"fmt"
)
func producer(ch chan int, bufferSize int) {
for i := 0; ; i++ {
if len(ch) >= bufferSize {
// 缓冲区满,等待
continue
}
ch <- i
}
}
func consumer(ch chan int) {
for num := range ch {
fmt.Println("Consumed:", num)
}
}
func main() {
bufferSize := 5
ch := make(chan int, bufferSize)
go producer(ch, bufferSize)
go consumer(ch)
// 防止主线程退出
select {}
}