package main
import (
"fmt"
"time"
)
func producer(c chan int) {
for i := 0; i < 3; i++ {
fmt.Printf("Alice puts product, ID is : %d \n", i)
c <- i
time.Sleep(time.Second)
}
defer close(c)
}
func consumer(c chan int) {
hasMore := true
var p int
for hasMore {
if p, hasMore = <-c; hasMore {
fmt.Printf("Bob gets product, ID is : %d \n", p)
}
}
}
func main() {
c := make(chan int)
go producer(c)
consumer(c)
}
channel 生产者消费者
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消...