select

专门为了操作通道而存在的语句

  • 包含默认分支和候选分支
  • 候选分支的表达式中必须包含通道发送表达式或者通道接收表达式
  • 候选分支中的case表达式都会在该语句执行开始时先被求值,并且求值的顺序是依从代码编写的顺序从上到下的
  • 对于每一个case表达式,如果其中的发送表达式或者接收表达式在被求值时,相应的操作正处于阻塞状态,那么对该case表达式的求值就是不成功的。在这种情况下,我们可以说,这个case表达式所在的候选分支是不满足选择条件的
  • 当所有的case处于阻塞状态才会执行default case
  • 当多个case处于可用状态
  • 当所有的候选分支都不满足选择条件,这时没有默认分支,那么select语句就会立即进入阻塞状态,直到至少有一个候选分支满足选择条件为止
  • 当有多个case 可以执行,用一种伪随机的算法 在这些分支中选择一个并执行
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容