package main
import (
"sync"
"log"
"time"
)
func main() {
//每个三秒总共需要9秒
doSomeing1(4)
doSomeing1(5)
doSomeing1(6)
//3个goroutine同时进行,只需要3秒
var wg sync.WaitGroup
wg.Add(3)
go doSomeing(1, &wg)
go doSomeing(2, &wg)
go doSomeing(3, &wg)
//等待三个执行完主程序才退出
wg.Wait()
}
func doSomeing1(jopId int) {
log.Printf("开始 jop{%d} \n", jopId)
time.Sleep(time.Second * 3)
log.Printf("结束 jop{%d} \n", jopId)
}
func doSomeing(jopId int, wg *sync.WaitGroup) {
log.Printf("开始 jop{%d} \n", jopId)
time.Sleep(time.Second * 3)
log.Printf("结束 jop{%d} \n", jopId)
wg.Done()
}