去哪儿面试题 (Golang实现)多线程顺序输出1-75

package main

import (
    "fmt"
    "sync"
    "time"
)

var waiter sync.WaitGroup

func print5(i int) {
    j := i
    for j < i+5 {
        fmt.Println(j)
        j++
    }
    waiter.Done()
}

func main() {
    fmt.Println("Start print 75")
    waiter = sync.WaitGroup{}
    waiter.Add(15)

    for i := 1; i < 75; i += 5 {
        go print5(i)
        time.Sleep(1 * time.Nanosecond)
    }

    waiter.Wait()
    fmt.Println("End print 75")
}

程序输出如下,


8982195-921d360a37aad8f9.png
image.png

转载于:https://www.jianshu.com/p/b8d9599947e8

猜你喜欢

转载自blog.csdn.net/weixin_33713707/article/details/91077753