首页 > 试题广场 >

在一个 Go 并发程序中,有多个 goroutine 向同一

[单选题]
在一个 Go 并发程序中,有多个 goroutine 向同一 channel 发送数据,主函数负责接收数据。如何确保 channel 在发送完毕后被安全关闭,避免发送者 panic?
  • 在主函数中使用 close(ch) 直接关闭 channel
  • 为每个发送 goroutine 使用 defer close(ch) 关闭 channel
  • 使用 sync.WaitGroup 跟踪所有发送 goroutine,完成后由主函数关闭 channel
  • 在发送 goroutine 中使用 select 语句来检测 channel 状态后关闭

这道题你会答吗?花几分钟告诉大家答案吧!