登录
首页 >  Golang >  Go问答

无缓冲channel中的数据处理不过来会怎样?

来源:SegmentFault

时间:2023-02-16 15:37:56 159浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《无缓冲channel中的数据处理不过来会怎样?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下go,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

假如有两个goroutine,一个负责发送数据,一个负责接收并处理数据,如果处理数据的速度远远比不上发送数据的速度,那么发送数据的goroutine会等待处理数据的goroutine吗?还是说处理不过来的数据会被丢弃?

正确答案

无缓冲channel没有什么满了一说

比如两个人传递东西:
无缓冲相当于从发送者手中直接亲手交到接收人收手中,中间无任何传递介质,所以必须双方都准备好了,才可以传递,接收者没有准备好,发送者是没办法发送的,会一直阻塞,至于等待久了,是否丢弃,都是上层业务的处理逻辑问题,跟channel没啥关系

有缓冲,相当于两个人中间有个箱子,一个人放东西进箱子,一个人从箱子中取,缓冲区大小就是箱子的容量。

到这里,我们也就讲完了《无缓冲channel中的数据处理不过来会怎样?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表