话不多说直接上代码
没加协程之前运行结果
没协程之前代码:
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