[英]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.