[英]Websockets running in background of go program causing 100% CPU usage
我在我的 go 程序中實現了網絡套接字,以便在其他進程發生時定期更新后台的三個變量。 由於這樣做,程序幾乎立即開始占用 100% 的 CPU 使用率,我不確定為什么。
這是有問題的代碼:
streamOneHandler := func(event *websockets.Event) {
varOne, err = strconv.ParseFloat(event.Number, 64)
}
streamTwoHandler := func(event *websockets.Event) {
varTwo, err = strconv.ParseFloat(event.Number, 64)
}
streamThreeHandler := func(event *websockets.Event) {
varThree, err = strconv.ParseFloat(event.Number, 64)
}
errHandler := func(err error) {
fmt.Println(err)
}
streamOne, err = websockets.WsEventServe("string1", streamOneHandler, errHandler )
if err != nil {
log.Fatal(err)
}
streamTwo, err = websockets.WsEventServe("string2", streamTwoHandler, errHandler )
if err != nil {
log.Fatal(err)
streamThree, err = websockets.WsEventServe("string3", streamThreeHandler, errHandler )
if err != nil {
log.Fatal(err)
}
go func() {
<- streamOne
<- streamTwo
<- streamThree
}()
任何幫助找出導致 CPU 使用率大幅飆升的原因將不勝感激。
當您在 goroutine 中進行無限循環旋轉時,就會發生這種情況。 很難看出您發布的代碼子集發生了什么。 但這就是原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.