求老师解答,select的case发送消息时的条件判断问题

来源:11-4 用select进行调度

wdmzjgxd

2019-08-05

图片描述
对于接收的case是如果接收到值,才执行case代码块里,那对于发送的case是如果有值被接收了才算匹配条件,然后执行case代码块吗?如果是这样的话,上图的代码为啥只接收到了一个值,难道也只发送了一个值吗?如果有一个没发,那怎么判断有没有被接收呢?

写回答

1回答

小君君domisol

2019-08-06

select 只会执行某一个分支,所以上面的代码只会执行一个 case,而且到底执行哪一个不确定,因为你的 channel 都是可写的。

如果想持续发送,那么 for 循环是少不了的,这个和使用 c  语言调用 select 调用是类似的。

2
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程