golang自學之路(goroutine之一)7

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章