Go 語言使用WaitGroup個人筆記記錄

2021-08-14 02:06:42 字數 1234 閱讀 4841

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...