func main()
//下乙個週期時間用來判斷是否是未來時,如果不是未來時間,那麼將查詢時間替換成下乙個週期
nexttime, flag := handlenextgranularitytime(searchtime, analysisreq.granularity, analysisreq.type)
searchtime = nexttime
//b, _ := json.marshal(dimensionarr)
"維度資訊:", string(b))
if !flag
}var wg sync.waitgroup
//新增查詢時間的長度
wg.add(len(searchtimearr))
//時間資料的數量,key為時間,value為對應時間查詢的數量,用於後續比較計算轉化 [通道]
timeanalysisdatalenmapchan := make(chan
map[string]int, len(searchtimearr))
//時間多維度的map,key為時間,value為多維度map(key為多個維度的值,value預設0) [通道]
timedimessionsmapchan := make(chan
map[string]map[string]int, len(searchtimearr))
nowtime := time.now().unixnano()
for _, _searchtime := range searchtimearr (_searchtime)
}//阻塞等待所有併發執行結束
wg.wait()
//關閉通道,停止放入資料
close(timeanalysisdatalenmapchan)
close(timedimessionsmapchan)
fmt.printf("查詢所有單圖資料 花費%d ms \n", (time.now().unixnano()-nowtime)/1000000)
//用兩種形式跳出chan的迴圈,並將通道的值賦予timeanalysisdatalenmap,timedimessionsmap
for
}else }}
_timeanalysisdatalenmapend:
_timedimessionsmapend:
for
}else }}
}
Go語言WaitGroup使用時需要注意什麼
go語言waitgroup使用時需要注意什麼?前言waitgroup在go語言中,用於執行緒同步,單從字面意思理解,wait等待的意思,group組 團隊的意思,waitgroup就是指等待一組,等待乙個系列執行完成後才會繼續向下執行。golang 中的 waitgroup 一直是同步 gorout...
go語言gorm使用
var jsondata map string inte ce 全域性變數 存放配置檔案的map物件 func initjson configstr string bytes reg regexp.mustcompile configstr reg.replaceallstring configst...
go語言使用redis redigo
redis的client有好多好多,go語言的client在redis官方有兩個推薦,radix和redigo。選擇哪乙個好呢?確實很糾結,後來擲硬幣決定選擇redigo了。redis go redigo的安裝就不需要提了,不能強行增加篇幅。redigo使用起來很人性化,api設計的符合直覺,我對r...