30、非阻塞通道操作
00 分钟
2022-8-26
常规的通过通道发送和接收数据是阻塞的。然而,我们可以是用带一个default子句的select来实现 非阻塞 的发送、接收,甚至是非阻塞的多路select
 
 
 
 
 
 
这是一个非阻塞接收的例子。如果在messages中存在,然后select将这个值带入←messages case中。否则,就直接到default分支中。
 
 
一个非阻塞发送的例子,代码结构和上面接收的类似。msg不能发送到message通道,因为这是个无缓冲区通道,并且也没有接收者,因此,default会执行。
 
 
我们可以在default前使用多个case子句来实现一个多路的非阻塞的选择器。这里我们试图在messages和signals上同时使用非阻塞的接收操作
 
 
 
上一篇:
29、超时处理
下一篇:
31、通道的关闭

评论