首页 > 试题广场 >

关于 Go 语言中的 channel,一个无缓冲 chann

[单选题]
关于 Go 语言中的 channel,一个无缓冲 channel 在发送数据时如果没有接收者,会发生什么?
  • 立即返回一个错误
  • 导致程序崩溃
  • 阻塞发送 goroutine 直到有接收者
  • 数据被自动丢弃
向一个无缓冲 channel 发送数据时,如果当时没有其他 goroutine 在等待接收,发送操作会阻塞当前的 goroutine,直到有接收者就绪。如果所有 goroutine 都因等待而无法继续执行(例如,在仅有的 main goroutine 中发生这种情况),Go 运行时会检测到死锁(deadlock)并导致程序崩溃
发表于 2026-01-16 09:07:00 回复(0)
发表于 2025-11-27 00:04:09 回复(1)