这里会显示出您选择的修订版和当前版本之间的差别。
golang:pattern:producer-consumer [2021/10/27 16:38] admin 创建 |
golang:pattern:producer-consumer [2021/10/27 16:39] (当前版本) admin |
||
---|---|---|---|
行 1: | 行 1: | ||
===== producer-consumer ===== | ===== producer-consumer ===== | ||
< | < | ||
+ | ```go | ||
+ | package main | ||
+ | /* producer-consumer problem in Go */ | ||
- | < | + | |
+ | import (" | ||
+ | |||
+ | var done = make(chan bool) | ||
+ | var msgs = make(chan int) | ||
+ | |||
+ | func produce () { | ||
+ | for i := 0; i < 10; i++ { | ||
+ | msgs <- i | ||
+ | } | ||
+ | done <- true | ||
+ | } | ||
+ | |||
+ | func consume () { | ||
+ | for { | ||
+ | msg := <-msgs | ||
+ | fmt.Println(msg) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | func main () { | ||
+ | go produce() | ||
+ | go consume() | ||
+ | <- done | ||
+ | } | ||
+ | |||
+ | |||
+ | ``` | ||
+ | |||
+ | </markdown> |