我有一个功能
func myFunc(mycontext context.Context, duration time.Duration, f someFunc) {
for {
select {
case <- time.After(duration):
// do some stuff
case <-mycontext.Done():
// Other stuff
}
}
字符串
这被称为与
duration := time.Minute
go myFunc(mycontext, duration, myFuncPointer)
型
今天我注意到这个函数永远不会退出。在暂停和检查gothread时,我看到我的duration变量具有此值
github.com/cenkalti/backoff/v4.DefaultMaxInterval (60000000000)
型
为什么它有这个值,而不是我的一分钟持续时间?此外,持续时间从来没有得到重新分配在任何时候,所以我不认为它。
1条答案
按热度按时间zfciruhq1#
我看到我的duration变量有这个值
字符串
为什么它有这个值,而不是我的一分钟持续时间?
阅读Go标准库package time文档。
型
持续时间表示两个时刻之间经过的时间,以int64纳秒计数表示。
型
time.Minute
是60000000000
纳秒。型
https://go.dev/play/p/YVx4ddJYnv6的
型