为什么缓冲通道不能保持活动状态? [已关闭]

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

我有一个程序,我不想自动死掉,最有效的方法是使用一个接收通道,等待数据直到它被取消,但由于不好的原因,它在我的程序中不起作用机器。

这是我的示例代码:

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

这不起作用并返回一个错误,指出所有 goroutine 都在睡觉! 即使切换缓冲区大小也不起作用,我的错误在哪里?

为了清楚起见,我使用 Go 版本 1.18.5。

go channel goroutine
1个回答
-1
投票

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

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