Timer Goroutine を使用して、Go で遅延操作を実行できます。 time.NewTimer() を介してタイマーを作成します。このタイマーの C チャネルは、遅延の終了を示す信号を受信します。タイマーは timer.Stop() で停止できます。次の実際的なケースは、タイマー Goroutine を使用してネットワーク リクエストをシミュレートし、5 秒後に応答またはタイムアウトを返す方法を示しています。
タイマーGoroutineを使って遅延操作を実行する方法
Goでは、タイマーGoroutineを使用して遅延操作を簡単に実装できます。タイマー ゴルーチンは、プログラムの実行を遅らせるノンブロッキングな方法を提供します。
タイマーGoroutineの使用
タイマーGoroutineを使用するには、time.NewTimer()
を呼び出す必要があります。この関数は、要求された遅延が経過したことを示す信号を受信する C
チャネルを含むタイマー タイプを返します。 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()
タイマーを停止します
必要に応じて、タイマーの前に停止することができます。有効期限が切れます。timer.Stop()
メソッドを呼び出すと、タイマーをキャンセルできます: 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 中国語 Web サイトの他の関連記事を参照してください。