当前位置: 首页 > 网络应用技术

进行并行编程|选择语句(IO Multi -Way Reuse)

时间:2023-03-09 02:07:48 网络应用技术

  选择是GO中的控制结构。选择语句与Switch语句相似,但是SELECT将随机执行运行案例。如果没有案例,它将被阻止,直到可以运行为止。

  SELECT是Golang在语言级别提供的多通路重用机制。它可以检测到多个通道是否准备就绪(也就是说,是否可以读取或写入),这非常方便使用。

  Select语句的语法结构与Switch语句相似。也有案例语句和默认语句:

  阐明:

  示例代码:

  操作结果:

  它可能会执行第一种情况,打印100或执行第二种情况,打印200。(运行几次,结果不同)

  选择语句与时代包和陈相关功能结合在一起

  示例代码:

  操作结果:

  程序过程转移到选定的案例块。

  源代码包定义了指示案例语句的数据结构:

  SCASE.C是由当前案例语句操作的频道指针,它还表明案例语句只能操作一个频道。Scase.kind代表案例的类型,该类型被分为阅读频道,写作通道和默认值。这三种类型由常数定义:

  scase.elem表示缓冲区地址。与scase.kind不同,有不同的用途:

  源代码软件包定义了选择案例的选择功能:

  功能参数:

  函数返回值:

  SelectGo如下实现伪代码:

  特殊说明:要读取频道,如果通道可能被其他Coroutines关闭,则必须成功,因为关闭的通道此时也可能返回零值。

  原始:https://juejin.cn/post/7098568794745864222