Golang向已关闭的channel中读和向channel中写有何区别?

╰半橙微兮° 2024-02-19 10:27 112阅读 0赞

向已关闭的channel中读和向channel中写有明显的区别。

当通道被关闭后,对其发送操作会引发panic,因为通道已经关闭,任何进一步的写入都将失败。

对于读取操作,如果通道关闭前有未读的数据,那么这些数据可以被正确读取。如果通道关闭前没有未读的数据,那么读取操作将立即返回通道元素的零值(对于非阻塞读取)或者返回false(对于阻塞读取)。在通道关闭后,默认情况下读取操作会返回通道元素的零值和true,除非在关闭前最后一个接收操作之后还有其他接收操作。

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读

    相关 golangChannel

    Channel是Go中的一个核心类型,可以将其看成一个管道,通过它并发单元就可以发送或者接收数据进行通信(communication)。 `Do not communicat