在无限循环中表现出奇怪的行为

我的 Go 代码中有非常奇怪的行为。总体要点是,当我有


for {

  if messagesRecieved == l {

    break

  }

  select {

  case result := <-results:

    newWords[result.index] = result.word

    messagesRecieved += 1

  default:

    // fmt.Printf("messagesRecieved: %v\n", messagesRecieved)

    if i != l {

      request := Request{word: words[i], index: i, thesaurus_word: results}

      requests <- request

      i += 1

    }

  }

}

程序冻结并且无法前进,但是当我取消注释 fmt.Printf 命令时,程序运行正常。您可以在此处查看完整代码。有谁知道是什么导致了这种行为?


繁星点点滴滴
浏览 176回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go