計時器 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中文網其他相關文章!