我有一些應(yīng)該增加計(jì)數(shù)的代碼。這是包含count變量的結(jié)構(gòu):type PipelineData struct { nodeData map[string]map[string]int lastBurstResults map[string]map[string]string burstReady map[string]bool lastExecutionTime map[string]time.Time currentNodeSize uint64}如您所見(jiàn),有一個(gè)名為的成員currentNodeSize。此變量旨在在每次addNodeData調(diào)用函數(shù)時(shí)增加。您可以看到該函數(shù)addNodeData調(diào)用該函數(shù)addCount,然后使用原子增量器。func (p PipelineData) addNodeData(key string) { nodeSlot := clusterScenario.GetNodeSlotByHashSlot(key) i:=p.nodeData[nodeSlot][key] i++ p.nodeData[nodeSlot][key]=i p.addCount() fmt.Println("Adding node count ",p.currentNodeSize)}func (p PipelineData) addCount(){ atomic.AddUint64(&p.currentNodeSize, 1) }不幸的是,當(dāng)我運(yùn)行此命令時(shí):p.addNodeData("{pipelinetest}.key");p.addNodeData("{pipelinetest}.key");p.addNodeData("{pipelinetest}.key");p.addNodeData("{pipelinetest}.key");p.addNodeData("{pipelinetest}.key"); p.addNodeData("{pipelinetest}.key"); Dump(p.currentNodeSize) 輸出為0。這是PipelineData結(jié)構(gòu)的初始化:p = &PipelineData{ nodeData:make(map[string]map[string]int,0), lastBurstResults:make(map[string]map[string]string,0), burstReady:make(map[string]bool,0), lastExecutionTime:make(map[string]time.Time,0), currentNodeSize:0,}for i,_ := range clusterScenario.masterNodes{ p.nodeData[i]=make(map[string]int,0)} 我了解社區(qū)已要求我進(jìn)行研究。我不知道該怎么辦。任何幫助,將不勝感激。我還嘗試了使用變量的通用增量器,并且產(chǎn)生了相同的結(jié)果,這就是為什么我嘗試使用原子增量器的原因
增量器不起作用
飲歌長(zhǎng)嘯
2021-04-04 17:15:50