在Go语言中,我们可以通过time包中的NewTimer()函数和time.After()函数来创建定时器。其中,NewTimer()函数返回一个定时器对象,你可以通过该对象的C属性读取定时器到期的时间点;而time.After()函数返回一个等待定时器到期的通道。
以下是一个使用NewTimer()函数的例子:
package main
import (
"fmt"
"time"
)
func main() {
timer1 := time.NewTimer(2 * time.Second)
<-timer1.C
fmt.Println("Timer 1 expired")
}
在上面的代码中,我们创建了一个定时器对象timer1,并设置其到期时间为两秒后。通过读取timer1.C通道,我们在定时器到期时会立即收到一个通知。
我们还可以使用time.After()函数来创建一个定时器,它会返回一个到期时间通道:
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Waiting for 2 seconds...")
<-time.After(2 * time.Second)
fmt.Println("Done.")
}
使用time.After()函数来创建一个定时器需要注意的是,你需要等待并接收到通道的一个值,否则定时器就会一直阻塞下去。因此,在上面的例子中,我们使用了一个无限循环来等待定时器到期。