在 Go 语言中,实现超时检测通常涉及到使用 time
包中的相关函数,特别是 time.After
和 select
语句。以下是具体实现超时检测的方法:
package main
import (
"fmt"
"time"
)
func main() {
done := make(chan bool, 1)
go func() {
time.Sleep(2 * time.Second)
done <- true
}()
select {
case <-done:
fmt.Println("Operation completed before timeout.")
case <-time.After(1 * time.Second):
fmt.Println("Operation timed out.")
}
}