第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go vet:捕獲內(nèi)部競爭條件,但不捕獲外部競爭條件

go vet:捕獲內(nèi)部競爭條件,但不捕獲外部競爭條件

Go
慕俠2389804 2023-07-31 15:50:00
在最近使用了導(dǎo)致數(shù)據(jù)爭用的嵌套循環(huán)。go vet只發(fā)現(xiàn)了一些問題。使用簡化版本:for _, o := range ol {? ? ? ? o := o // <- remove this: `go vet` does *NOT* complain? ? ? ? for _, d := range dl {? ? ? ? ? ? d := d // <- remove this: `go vet` will complain? ? ? ? ? ? go func() {? ? ? ? ? ? ? ? fmt.Printf("%03d %03d\n", o, d) // potential data-race? ? ? ? ? ? }()? ? ? ? }? ? }操場go vet正確檢測內(nèi)部競爭條件,但不能正確檢測外部競爭條件。為什么是這樣?太復(fù)雜而無法跟蹤超過 2 層的范圍?
查看完整描述

2 回答

?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

代碼中的注釋說:

該分析器檢查循環(huán)體內(nèi)函數(shù)文字中對循環(huán)變量的引用。它僅檢查在 defer 或 go 語句(循環(huán)體中的最后一個語句)中調(diào)用函數(shù)文字的實例,否則我們將需要整個程序分析。

go vet命令不會抱怨,o因為 go 語句不是o循環(huán)中的最后一條語句。

該測試非常簡單,可能會檢測到大多數(shù)錯誤實例。檢測錯誤的其他實例需要一種需要更多時間來開發(fā)和執(zhí)行的方法。


查看完整回答
反對 回復(fù) 2023-07-31
?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

具體來說這個評論:

...這個問題分析起來更具挑戰(zhàn)性,因為它需要證明該函數(shù)不是在循環(huán)內(nèi)調(diào)用的,或者至少無法證明它是在循環(huán)內(nèi)調(diào)用的。一旦匿名函數(shù)被存儲在數(shù)據(jù)結(jié)構(gòu)中或傳遞給另一個函數(shù),vet 就無法再精確地確定何時可能調(diào)用它。

換句話說,我認為當前的獸醫(yī)檢查可能與我們在沒有過程間分析的情況下所能做的一樣好。


查看完整回答
反對 回復(fù) 2023-07-31
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號