未选择的频道将保持“完好无损”。更准确地说,不会执行未选择的通信操作。这是否会导致应用中的死锁或 goroutine 泄漏完全取决于您的应用。您可能有多个goroutine从这些通道发送/接收,并且可能在循环中重复执行,最终执行所有就绪的通信操作。selectselect通道(如 Go 中的所有值)在无法访问时会被垃圾回收,也就是说,没有 Go 代码对它们有“引用”。如果 goroutine 在尝试从通道发送/接收时被阻止,则算作对通道的“引用”,因此垃圾回收器无法“挽救”该通道。垃圾回收器不是解决死锁情况的工具,而是释放无法访问的未使用的内存的工具。你必须考虑解决僵局。