Golang中channel使用的一些小技巧
时间:2022-05-05
本文章向大家介绍Golang中channel使用的一些小技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
关闭2次
ch := make(chan bool)
close(ch)
close(ch) // 这样会panic的,channel不能close两次
读取的时候channel提前关闭了
ch := make(chan string)
close(ch)
i := <- ch // 不会panic, i读取到的值是空 "", 如果channel是bool的,那么读取到的是false
向已经关闭的channel写数据
ch := make(chan string)
close(ch)
ch <- "good" // 会panic的
判断channel是否close
i, ok := <- ch
if ok {
println(i)
} else {
println("channel closed")
}
for循环读取channel
for i := range ch { // ch关闭时,for循环会自动结束
println(i)
}
防止读取超时
select {
case <- time.After(time.Second*2):
println("read channel timeout")
case i := <- ch:
println(i)
}
防止写入超时
// 其实和读取超时很像
select {
case <- time.After(time.Second *2):
println("write channel timeout")
case ch <- "hello":
println("write ok")
}
- Java并发学习之synchronized使用小结
- 18.3/18.4/18.5 用keepalived配置高可用集群
- JDK容器学习之Queue:DelayQueue
- React-Native组件之 Navigator和NavigatorIOS
- JDK容器学习之Queue:ConcurrentLinkedQueue
- JDK容器学习之Queue: PriorityQueue
- React Native导航器之react-navigation使用
- Nginx 路由转发配置笔记
- React Native控件之ListView
- Java学习之深拷贝浅拷贝及对象拷贝的两种方式
- [周末课程]什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据? &下一个前端组件“日历”
- Java并发学习之玩转线程池
- Java & PhantomJs 实现html输出图片
- 干货 | React Native实践之携程Moles框架
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- (下)python3 selenium3 从框架实现代码学习selenium让你事半功倍
- 【Vuejs】738- 一篇文章上手Vue3中新增的API
- Python自动化运维1
- python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】
- 【JS】739- JavaScript 解析 URL
- 一篇文教你使用python Turtle库画出“精美碎花小清新风格树”快来拿代码!
- 1-Go快速学习入门
- python 手把手教你基于搜索引擎实现文章查重
- JAVA入门学习七
- JAVA入门学习三
- CSS笔记
- JQuery笔记
- JavaScript笔记
- 【Web技术】740- 零距离接触 WebSocket
- JAVA入门学习一