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 關注
- 100 瀏覽
添加回答
舉報