为什么golang的缓冲通道不能作为保活通道?

问题描述 投票:0回答:1

好吧,我厌倦了我的 golang 机器上的这些错误,我最近看到的教程视频中的一些工作但在我的机器上失败了,无论如何我有一个程序,我不想自动死掉,最有效的方法是使用一个等待数据直到数据被取消的接收通道,但由于一些不好的原因,它在我的机器上不起作用,尽管它在那些视频中起作用。 这是我的示例代码:

package main
import (
  "fmt"
  )
  var ch chan bool = make(chan bool, 0)
  func main() {
    fmt.Println("keep alive")
    <-ch
  }

这不起作用并返回一个错误,指出所有 goroutine 都在睡觉! 即使切换缓冲区大小也不起作用,我的错误在哪里?请帮我解决这个问题。 为了清楚起见,我使用 golang 版本 1.18.5。 谢谢!

go channel goroutine
1个回答
0
投票

通道默认块,你应该给一个值。 例如。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.