package main
import (
"time"
"fmt"
)
func main() {
limitTime(funcA, 6*time.Second)
}
func limitTime(f func(),timer time.Duration) {
ok := make(chan struct{})
go func() {
f()
ok<- struct{}{}
}()
select {
case <- time.After(timer):
fmt.Println("time out")
case <-ok:
}
}
func funcA() {
time.Sleep(time.Second*10)
fmt.Println("there is a function")
}
golang 控制方法的访问时间
最新推荐文章于 2024-04-19 20:57:12 发布
本文介绍了一种使用Go语言实现函数调用超时的方法。通过创建一个协程执行目标函数,并使用time.After和select机制来判断函数是否在指定时间内完成执行。如果函数执行超时,将打印出timeout信息。
1553

被折叠的 条评论
为什么被折叠?



