1. package main
    2. import (
    3. "fmt"
    4. "time"
    5. )
    6. func main() {
    7. ch := make(chan int, 64)
    8. go producer(1, ch)
    9. go producer(5, ch)
    10. go consumer(ch)
    11. time.Sleep(time.Second * 5)
    12. }
    13. // 生产者
    14. func producer(factor int, out chan int) {
    15. for i := 0; ; i++ {
    16. out <- i * factor
    17. }
    18. }
    19. // 消费者
    20. func consumer(in chan int) {
    21. for v := range in {
    22. fmt.Println(v)
    23. }
    24. }