话不多说直接上代码
没加协程之前运行结果
没协程之前代码:
package main import ( "fmt" "time" ) func fn1() { time.Sleep(1*time.Second) fmt.Println("暂停1秒") } func fn2(){ time.Sleep(2*time.Second) fmt.Println("暂停2秒") } func main() { begin := time.Now() fmt.Println("现在",begin) for i := 0; i < 5; i++ { fn1() fn2() } end := time.Now() fmt.Println("总共用时:",end.Sub(begin)) }
加了协程的运行结果:
加了协程的代码:
package main import ( "fmt" "time" "sync" ) var wt sync.WaitGroup func fn1() { time.Sleep(1*time.Second) fmt.Println("暂停1秒") wt.Done() } func fn2(){ time.Sleep(2*time.Second) fmt.Println("暂停2秒") wt.Done() } func main() { begin := time.Now() fmt.Println("现在",begin) for i := 0; i < 5; i++ { go fn1() wt.Add(1) go fn2() wt.Add(1) } end := time.Now() wt.Wait() fmt.Println("总共用时:",end.Sub(begin)) }
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did18539