6 go
我已经确定了我的程序中的瓶颈,它是一个缓冲通道.我想向客户端提供系统负载的指示,这应该通过通道中缓冲的消息数来指示.
Go中是否有一种方法可以告诉通道中有多少缓冲消息?
如果你也有Java背景,我正在寻找一个相同的:http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/LinkedBlockingQueue.html#size()
pet*_*rSO 14
内置函数
len并cap获取各种类型的参数并返回类型的结果int.实现保证结果始终适合int.Run Code Online (Sandbox Code Playgroud)Call Argument type Result len(s) chan T number of elements queued in channel buffer cap(s) chan T channel buffer capacity
len通道的功能给出了通道缓冲区中排队的元素数.例如,
package main
import "fmt"
func main() {
ch := make(chan int, 8)
ch <- 42
ch <- 7
<-ch
ch <- 64
// number of queued elements = 1 + 1 - 1 + 1 = 2
fmt.Println(len(ch), cap(ch))
}
Run Code Online (Sandbox Code Playgroud)
输出:
2 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |