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()
}