Timer Goroutine은 Go에서 지연된 작업을 수행하는 데 사용할 수 있습니다. C 채널이 지연 종료를 나타내는 신호를 수신하는 time.NewTimer()를 통해 타이머를 만듭니다. 타이머는timer.Stop()을 사용하여 중지할 수 있습니다. 다음 실제 사례에서는 타이머 Goroutine을 사용하여 네트워크 요청을 시뮬레이션하고 5초 후에 응답 또는 시간 초과를 반환하는 방법을 보여줍니다.
타이머 고루틴을 사용하여 지연된 작업을 수행하는 방법
Go에서는 타이머 고루틴을 사용하여 지연된 작업을 쉽게 구현할 수 있습니다. 타이머 고루틴은 프로그램 실행을 지연시키는 비차단 방식을 제공합니다.
타이머 고루틴 사용하기
타이머 고루틴을 사용하려면 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()
Stop the time
원하는 경우 타이머가 시작되기 전에 중지할 수 있습니다. 만료됩니다.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) }
위 내용은 타이머 고루틴을 사용하여 지연된 작업을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!