简单缓冲任务管道模型

2019-10-09  本文已影响0人  funcx
package main

import (
    "log"
    "sync"
    "time"
)

func main() {
    wg := sync.WaitGroup{}
    ch := make(chan int, 3)
    n := 3
    wg.Add(n)
    for i := 0; i < n; i++ {
        go func(id int) {
            for v := range ch {
                log.Println(id, "->", v)
                time.Sleep(time.Millisecond)
            }
            wg.Done()
        }(i)
    }
    for i := 0; i < 100; i++ {
        ch <- i
    }
    close(ch)
    wg.Wait()
}
上一篇 下一篇

猜你喜欢

热点阅读