golang 如何查看channel通道中未读数据的长度
可以通过内建函数len查看channel中元素的个数。
内建函数len的定义如下:
func len(v Type) int
The len built-in function returns the length of v, according to its type:
Array: the number of elements in v.数组中元素的个数
Pointer to array: the number of elements in *v (even if v is nil).数组中元素的个数
Slice, or map: the number of elements in v; if v is nil, len(v) is zero.其中元素的个数
String: the number of bytes in v.字节数
Channel: the number of elements queued (unread) in the channel buffer; if v is nil, len(v) is zero.通道中未读数据的个数
下面通过简单例子演示其使用方法。
package main
import "fmt"
func main() {
c := make(chan int, 100)
fmt.Println("1.len:", len(c))
for i := 0; i < 34; i++ {
c <- 0
}
fmt.Println("2.len:", len(c))
<-c
<-c
fmt.Println("3.len:", len(c))
}
output:
1.len: 0
2.len: 34
3.len: 32
可以看到,定义之后,没有任何元素时,长度为0。
接着写入34个元素后,长度为34。
最后,读出两个元素后,长度变为32。
参考
https://golang.org/pkg/builtin/#len
golang 如何查看channel通道中未读数据的长度的更多相关文章
- Golang 入门 : channel(通道)
笔者在<Golang 入门 : 竞争条件>一文中介绍了 Golang 并发编程中需要面对的竞争条件.本文我们就介绍如何使用 Golang 提供的 channel(通道) 消除竞争条件. C ...
- Golang的goroutine协程和channel通道
一:简介 因为并发程序要考虑很多的细节,以保证对共享变量的正确访问,使得并发编程在很多情况下变得很复杂.但是Go语言在开发并发时,是比较简洁的.它通过channel来传递数据.数据竞争这个问题在gol ...
- golang查看channel缓冲区的长度
golang提供内建函数cap用于查看channel缓冲区长度. cap的定义如下: func cap(v Type) int The cap built-in function returns th ...
- 如何查看子线程中的GC Alloc
1)如何查看子线程中的GC Alloc2)Build时,提示安卓NDK异常3)如何获得ParticleSystem产生的三角形数量4)关于图片通道的问题5)GPUSkinning导致模型动画不平滑 M ...
- NIO(二):Channel通道
一.Channel概述 channel(通道):进行IO的连接通道,为NIO的几个核心(Buffer,selector,channel)之一,相比于IO的stream具有较高的性能. IO 单向传输 ...
- pika详解(四) channel 通道
pika详解(四) channel 通道 本文链接:https://blog.csdn.net/comprel/article/details/94662394 版权 channel通道 通道 ...
- JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
1 学习计划 1.定区关联客户 n 完善CRM服务中的客户查询方法 n 在BOS项目中配置代理对象远程调用crm服务 n 调整定区关联客户页面 n 实现定区关联客户 2.查看定区中包含的分区 n 页面 ...
- Java NIO Channel通道
原文链接:http://tutorials.jenkov.com/java-nio/channels.html Java NIO Channel通道和流非常相似,主要有以下几点区别: 通道可以读也可以 ...
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea ...
随机推荐
- logging日志模块,hashlib hash算法相关的库,
logging: 功能完善的日志模块 import logging #日志的级别 logging.debug("这是个调试信息")#级别10 #常规信息 logging.info( ...
- Delphi 10.3.1 TNetHttpClient在多线程中存在的问题及解决方法。
Delphi 10.3.1发布了,对10.3.0存在的各种问题,做了大量的修正.但听高勇说TNetHttpClient在多线程中存在问题,今天做了一下测试,确实如此,看来,还需要官方进一步修正! 具体 ...
- mysql引擎事物支持
事务的特性事务具体四大特性,也就是经常说的ACID 1. 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果 ...
- 2017ICPC南宁赛区网络赛 Train Seats Reservation (简单思维)
You are given a list of train stations, say from the station 111 to the station 100100100. The passe ...
- C++ STL 数据结构与算法 —— 排序
1. Top k 大的数 排序后直接索引输出:O(nlogn)" role="presentation">O(nlogn)O(nlogn) std::sort( ...
- pycharm中如何安装Scrapy库
先打开pycharm软件. 然后先安装pywin32和setuptools库. 安装成功后再尝试Twisted库,如果失败,就去晚上下载一个库:https://www.lfd.uci.edu/~goh ...
- select标签(分组下拉菜单和列表)
分组下拉菜单和列表标签: <select name=" " > <optgroup label="组1"> <option val ...
- day python calss08 深浅copy
一 join (格式: . join) 遍历列表把列表中的每一项用指定符号进行拼接.(把列表转成字符串0 # lst = ["汪峰", "吴君如", &q ...
- [zoj4045][思维+dfs]
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4045 题意:给一棵树.这棵树有n个节点,问你这个图能不能分成k个分块.这个 ...
- vue项目的创建
https://jingyan.baidu.com/article/456c463b359e630a5931444e.html