知识点 定时器的使用

package demo_caculor

import (
"fmt"
"sync"
"time"
)

func main() {
//线程与协程
fmt.Println("程序开始")
time.AfterFunc(3e9, func() { //此类似协程需要时间,必须注意主线程是否执行时间超过3秒
fmt.Println("程序执行")
})
fmt.Println("程序结束")
//通过阻塞主线程,配合协程
time.Sleep(4 * time.Second)
//WaitGroup简介,等待组,实际上是一个计数器,只要计数器中有内容将一直阻塞
//WaitGroup存在于sync包中,WaitGroup只有三个方法
//Add(delta int)表示向内部计数器添加增量(delta),其中参数delta可以是负值
//Done()表示减少WaitGroup计数器的值,应该相当于在程序最后执行,相当于Add(-1)
//Wait()表示阻塞直到WaitGroup计数器为0
var wg sync.WaitGroup
wg.Add(5)
for i := 0; i < 5; i++ {
go func() {
fmt.Println("执行")
time.Sleep(time.Second)
wg.Done()
}()
}
wg.Wait()
}
posted @ 2019-08-17 15:23  初见未来  阅读(209)  评论(0编辑  收藏  举报