1 回答
TA贡献1878条经验 获得超4个赞
首先,让我们从维基百科中看一下“内存泄漏”的定义:
在计算机科学中,内存泄漏是一种资源泄漏,当计算机程序错误地管理内存分配时,就会发生这种泄漏,而不再需要的内存不会被释放。
重要的是要注意,在您引用的文档中,它没有特别提到“内存泄漏”,只是“泄漏”(意思是“资源泄漏”)。有问题的资源不仅是股票代码使用的内存,而且是运行它的戈鲁廷。因此,我将此定义更广泛地解释为适用于“资源泄漏”。
正如您引用的文档所提到的,无法释放股票代码的资源。time.Tick
因此,根据此定义,如果在程序的任何后续点不再需要该股票代码,则发生了资源泄漏。如果在创建后程序的其余部分始终需要该股票代码,则它不是泄漏。
然而,在维基百科的定义中,还有这个注释:
当对象存储在内存中但运行中的代码无法访问时,也可能发生内存泄漏。
同样,无法释放股票代码的资源。time.Tick
因此,根据这个持续的定义,你可能会说使用总是资源泄漏。time.Tick
实际上,只要您越过了没有ing,您就有合理的保证,即该代码将继续用于程序的其余部分,并且不会有“泄漏”。如果您怀疑股票代码是否会被永久使用,请使用时间。新投票器
和它适当地:range
time.Tick
break
Stop()
go func() {
ticker := time.NewTicker(time.Minute)
defer ticker.Stop()
for now := range ticker.C {
fmt.Println(now, statusUpdate())
// some exception
if (something) {
break
}
}
}()
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报