簡體   English   中英

在 go 程序后台運行的 Websockets 導致 100% CPU 使用率

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM