Golang顺序打印1-75改进版

2019-06-09  本文已影响0人  FredricZhu
package main

import (
    "fmt"
    "sync"
)

func main() {

    var wg sync.WaitGroup

    print5 := func(c *chan int, i int) {
        defer wg.Done()
        for j := i; j < i+5; j++ {
            *c <- j
        }
    }

    for i := 1; i < 75; i += 5 {
        wg.Add(1)
        ch := make(chan int, 5)
        go print5(&ch, i)
        for j := 0; j < 5; j++ {
            fmt.Println(<-ch)
        }

    }

    wg.Wait()
}

输出如下,


image.png
上一篇 下一篇

猜你喜欢

热点阅读