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 ...
随机推荐
- ksort 函数
foreach ($modules AS $key => $value){ ksort($modules[$key]);}ksort($modules); strpos(','.$_SESSIO ...
- TDate赋值给Variant时注意的问题
//Delphi 10.3.1 32bit, Win 7 32bit procedure TForm1.btnTimeToVariantClick(Sender: TObject); var d:TD ...
- Python 静态方法
class Person: @staticmethod # 静态方法 def yue(): print("fsadf") # 静态方法可以使用对象访问. 也可以使用类名访问. 但是 ...
- 3d的 一些公式
1. 3d围绕 z轴旋转 x,y 变换公式: // α β x = r cosα y = r sinα x' = r cos (α+β) y' = r sin (α+β) x' = r (cosα c ...
- Maven3 package时报 'version' contains an expression but should be a constant
父pom文件: <modelVersion>4.0.0</modelVersion> <groupId>com.wey</groupId> <ar ...
- 2017ICPC北京赛区网络赛 Visiting Peking University(简单思维)
描述 Ming is going to travel for n days and the date of these days can be represented by n integers: 0 ...
- python 实现图的深度优先和广度优先搜索
在介绍 python 实现图的深度优先和广度优先搜索前,我们先来了解下什么是"图". 1 一些定义 顶点 顶点(也称为"节点")是图的基本部分.它可以有一个名称 ...
- 【转载】 详解BN(Batch Normalization)算法
原文地址: http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce ------------------------------- ...
- Django框架之下载以及基本命令
Django的下载与基本命令 pip3 install Django #下载完成后保存在python解释器下的bin文件目录下 创建一个Django Project #命令行输入: django-ad ...
- 百练1678-整数的个数-2015正式A题
A:整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定k(1< k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数.写程序计算给定的k个正 ...