為什么當我初始化自動收報機然后更新它時,原始自動收報機仍然存在于內存中,如果我進行循環(huán),它會很快殺死我的 RAMtimeOut := 10ticker := time.NewTicker(time.Duration(timeOut) * time.Second)for { ticker = time.NewTicker(time.Duration(timeOut) * time.Second)}
2 回答
九州編程
TA貢獻1785條經驗 獲得超4個贊
包車時間
import?"time"函數(shù) NewTicker
func NewTicker(d Duration) *Ticker
NewTicker 返回一個新的 Ticker,其中包含一個通道,該通道將發(fā)送具有持續(xù)時間參數(shù)指定的時間段的時間。它調整間隔或滴答以彌補緩慢的接收器。持續(xù)時間 d 必須大于零;否則,NewTicker 會恐慌。停止自動收報機以釋放相關資源。
按照說明進行操作:停止 ticker 以釋放相關資源。
長風秋雁
TA貢獻1757條經驗 獲得超7個贊
for?{
????ticker?=?time.NewTicker(time.Duration(timeOut)?*?time.Second)
}這將盡可能快地創(chuàng)建 ticker 實例,并且由于 ticker 對象的性質,它們將無法清理(它們由 ticket 的實現(xiàn)引用,由于其異步性質,發(fā)生在不同的協(xié)程)。Go 可以非??焖俚貓?zhí)行此操作,從而非常迅速地導致 OOM(內存不足)錯誤。
但是這種模式沒有任何意義。沒有充分的理由在for循環(huán)中創(chuàng)建這樣的新代碼。您可以創(chuàng)建多個代碼,甚至很多,但您不能創(chuàng)建無限的代碼,這樣做也沒有多大意義。
此外,請注意您實際上并沒有在任何地方使用代碼。
- 2 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消
