golang代码 生产者 消费者

 

    func Producer(factor int, out chan<- int) {
        for i := 0; ; i++ {
            out <- i*factor
        }
    }

    func Consumer(in <-chan int) {
        for v := range in {
            fmt.Println(v)
        }
    }

    func main() {
        ch := make(chan int, 64) // 队列

        go Producer(3, ch) // 生成 3 的倍数的序列
        go Producer(5, ch) // 生成 5 的倍数的序列
        go Consumer(ch)    // 消费 生成的队列

        // Ctrl+C 退出
        sig := make(chan os.Signal, 1)
        signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
        fmt.Printf("quit (%v)\n", <-sig)
    }

 

posted @ 2020-05-27 20:28  是的哟  阅读(185)  评论(0)    收藏  举报