计时器 Goroutine 可用于在 Go 中进行延时操作。通过 time.NewTimer() 创建计时器,其 C 通道接收信号以指示延迟结束。计时器可以用 timer.Stop() 停止。以下实战案例演示了如何使用计时器 Goroutine 模拟网络请求,在 5 秒后返回响应或超时情况。
如何使用计时器 Goroutine 进行延时操作
在 Go 中,利用计时器 Goroutine 可以便捷地实现延时操作。计时器 Goroutine 提供了一种非阻塞的方式来延迟程序的执行。
使用计时器 Goroutine
要使用计时器 Goroutine,需要调用 time.NewTimer()
。该函数返回一个计时器类型,其中包含一个 C
通道,用于接收信号以指示所请求的延迟已过:
package main import ( "fmt" "time" ) func main() { // 创建一个持续 5 秒的计时器 timer := time.NewTimer(5 * time.Second) // 监听计时器 C 通道中的信号 <-timer.C fmt.Println("5 秒已过") }
停止计时器
如果需要,可以在计时器到时间之前停止它。调用 timer.Stop()
方法可以取消计时器:
timer.Stop()
实战案例
以下是使用计时器 Goroutine 模拟网络请求的实战案例:
package main import ( "fmt" "net/http" "time" ) func main() { // 模拟发送网络请求 request := func() (resp *http.Response, err error) { // 假装向网络发送请求并等待 5 秒 timer := time.NewTimer(5 * time.Second) defer timer.Stop() select { case <-timer.C: resp = &http.Response{} } return resp, nil } // 使用计时器 Goroutine发送请求 resp, err := request() if err != nil { fmt.Println(err) return } fmt.Println(resp) }
以上是如何使用计时器 Goroutine 进行延时操作?的详细内容。更多信息请关注PHP中文网其他相关文章!