Channel 的 ring buffer 实现

本文阅读 1 分钟
首页 golang 正文

channel 中使用了 ring buffer(环形缓冲区) 来缓存写入的数据。ring  buffer 有很多好处,而且非常适合用来实现 FIFO 式的固定长度队列。 在 channel 中,ring buffer 的实现如下:

上图展示的是一个缓冲区为 8 的 channel buffer,recvx 指向最早被读取的数 据,sendx 指向再次写入时插入的位置。

本文来自投稿,不代表本站立场,如若转载,请注明出处:
如何限制 goroutine 并发数量 (channel 或 WaitGroup)
« 上一篇 09-17
分片键的选择?
下一篇 » 09-17

发表评论

发表评论