1. 首页
  2. 编程语言
  3. 其他
  4. Golang的select多路复用及channel使用操作

Golang的select多路复用及channel使用操作

上传者: 2021-12-30 12:49:50上传 PDF文件 77.31 KB 热度 13次

select的写法用法有点像switch。但是和switch不同的是,select的一个case代表一个通信操作并且会包含一些语句组成的一个语句块。申明一个int类型的 channel变量abort 用来做取消时候传递给select的消息信号量这个后面会介绍到。申明一个int类型的 channel变量canLunch 用来做倒计时结束可以发射的信号量。只有当倒数结束,且canLunch有值后才能进行发射。用一个goroutine开启一个用于监听是否有停止发射信号的函数isAbort并且把申明好的channel变量传入。并且在倒数计时完成之后向canLunch channel发送信号。然后开始执行select,select在没有就绪的channel的时候会阻塞或者执行指定的defualt,这里我没有写default所以他会阻塞监听两个信号,一个是canLunch,一个是停止发送。只要收到任何一个信号后,执行该信号后面的内容最后运行Lunch函数。

下载地址
用户评论