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