Golang通道的无阻塞读写的方法示例

VastVanity 6 0 PDF 2020-12-13 10:12:51

无论是无缓冲通道,还是有缓冲通道,都存在阻塞的情况,但其实有些情况,我们并不想读数据或者写数据阻塞在那里,有1个唯一的解决办法,那就是使用select结构。这篇文章会介绍,哪些情况会存在阻塞,以及如何使用select解决阻塞。阻塞场景共4个,有缓存和无缓冲各2个。下面示例代码是使用select修改后的无缓冲通道和有缓冲通道的读写,以下函数可以直接通过main函数调用,其中的Ouput的注释是运行结果,从结果能看出,在通道不可读或者不可写的时候,不再阻塞等待,而是直接返回。

Golang通道的无阻塞读写的方法示例

Golang通道的无阻塞读写的方法示例

Golang通道的无阻塞读写的方法示例

用户评论
请输入评论内容
评分:
暂无评论