1. 通过select可以监听channel上的数据流动
  2. case语句里必须是一个IO操作
  3. 在一个select语句中,Go语言会按顺序从头至尾评估每一个发送和接收的语句
  4. 如果case满足,则执行对应语句
  5. 如果case全部不满足(即所有的通道都被阻塞)
    1. default语句,那么就会执行default语句
    2. 如果没有default语句,那么select语句将被阻塞
package mainimport ("fmt""time""runtime"
)func main()  {ch := make(chan int)            // 用来进行数据通信的 channelquit := make(chan bool)            // 用来判断是否退出的 channelgo func() {                 // 写数据for i:=0; i<5;i++{ch <- itime.Sleep(time.Second)}close(ch)quit <- true            // 通知主go程 退出runtime.Goexit()}()for {                        // 主go程 select 监听 channelselect {case num := <-ch:      // 不可读,阻塞。可以读,将数据保存至numfmt.Println("获取:", num)   case <-quit:         // 不可读,阻塞。可以读,将主go程结束。// break            // break 跳出 select  不可用//runtime.Goexit()   // runtime.Goexit()用来终断子协程,主协程不可用return                 // 终止进程,如果不return,会一直读0,channel关闭之后读到的是0}}
}

go语言 select相关推荐

  1. 数据库实验4 SQL语言-SELECT查询操作

    数据库实验4 SQL语言-SELECT查询操作 1.首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据: 创建数据库jxgl: create database jxgl; 创建相应的表: ...

  2. 实验二 SQL 语言——SELECT 查询操作(第一部分)

    SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...

  3. linux c语言 select函数用法

    原文地址:点击打开链接 linux c语言 select函数用法 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 co ...

  4. C语言 select

    #include <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptf ...

  5. 【SQL语言——SELECT查询操作】

    基于创建的数据库(包含读者.图书.借阅三张表),试用SQL的查询语句表达下列查询: 1.查询图书表中售价介于50元到70元之间的图书的全部信息 2.查询图书表中全部图书的最高售价.最低售价和平均售价. ...

  6. c语言select函数头文件,简述select函数的功能与调用方法

    使用select 首先我们需要解答一些疑惑.为什么要使用select函数? 比如你有一个服务器程序,维护着N多个TCP连接,你如何去判断这些TCP连接上有数据传送过来了呢?最傻瓜的办法就是隔一定时间去 ...

  7. C语言 select函数使用

    在编程的过程中,经常会遇到许多阻塞的函数,好像read和网络编程时使用的recv, recvfrom函数都是阻塞的函数,当函数不能成功执行的时候,程序就会一直阻塞在这里,无法执行下面的代码.这是就需要 ...

  8. Java实现C语言select函数_一道面试题目,分别用sql 和java,c++, c语言实现,

    引用来自"雨翔河"的评论 获取国家假日办的的信息,然后根据假日办提供的信息来搞定.日期的话,哈哈,找个提供日期查询的接口,借用一下来查日期,也搞定了.总之哪里有的抄就抄哪里的. 再 ...

  9. SQL Server数据库字符集、版本类型、版本号、所在服务器名、语言SQL语句查询语法演示

    一.数据库版本查看方法 --- 数据库版本 select SERVERPROPERTY(N'edition') 可以看到我的是企业版 二.数据库字符集查看方法 --- 数据库字符集 select SE ...

最新文章

  1. 鸿蒙内核源码分析:调度机制篇
  2. 通过Http管理Solr Core,实现索引的分类
  3. 月光博客 - 再谈软件保护中软加密和硬加密的安全强度
  4. 码长6075的qc-ldpc编译码的MATLAB误码率仿真
  5. 【中级软考】白盒测试和黑盒测试
  6. linux 使用 cp 命令强制覆盖功能
  7. Mac忘记root密码(Mac OS Sierra忘记root密码如何重置)
  8. python断言失败_python异常处理、断言
  9. 跳一跳python源码下载_微信跳一跳辅助_微信跳一跳作弊外挂下载【脚本】-华军软件园...
  10. 手机微信连不上wifi服务器怎么回事,微信连不上wifi怎么办?
  11. 视频插帧论文阅读(一)——FLAVR
  12. Eureka注册服务列表显示ip+端口
  13. Ubuntu22.04.1无法找到Ubuntu软件中心-Ubuntu Software
  14. vipJr联合朵拉举办童模大赛 潮童萌娃自信来袭
  15. Android模拟器编程,Android模拟器入门[转]
  16. Java中的十大组织
  17. css鼠标划过时的一些小特效
  18. pytorch中repeat和repeat_interleave
  19. Kaggle比赛----入门指导
  20. 关于惠普M277打印机手动双面打印和自动双面打印设置

热门文章

  1. jdbc连接池连不上mysql80_JDBC MySql连接池实践可避免连接池耗尽-问答-阿里云开发者社区-阿里云...
  2. Python爬取并简单分析2024年普通高校招生专业(专业类)选考科目要求
  3. Python演示--UDP套接字真的无连接吗?
  4. 计算机申报专业怎么写,给申请计算机专业的学生的建议
  5. w ndows10玩游戏蓝屏,Win10系统玩游戏蓝屏提示代码0x0000007E的两种解决方法
  6. .html()与.text()区别与辨析
  7. 微型计算机常用的语言B,2012河南省计算机等级考试试题 二级C试题(必备资料)
  8. java 反编译 在线_「java反编译工具」分享java反编译工具,超级好用 - seo实验室...
  9. python科学计算包与matlab_做科学计算用Python还是MATLAB?
  10. nodejs 更新_NodeJs(一)我对NodeJs的认知