golang的缓冲channel和无缓冲channel的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang的缓冲channel和无缓冲channel的区别相关的知识,希望对你有一定的参考价值。

参考技术A 缓冲channel是处理并发的时候你并不知道要同时并发多少goroutine,比如一个在线聊天室,我不知道有多少人会同时登录发消息,那么我就要比如make1000个chan作为缓冲有些情况下,程序里面的并发是你自己设计的,并且你知道确切的数量,这时候你就不需要缓冲了

go的有缓冲chann和无缓冲chan的区别

参考技术A 有缓冲chan不容易阻塞
无缓冲chan是同步的,就是在一个协程里面塞(取),另外一个操作必须即刻执行否则就会阻塞

程序的执行是以栈的方式逐步执行的,如此就能知道什么时候会阻塞了!

以上是关于golang的缓冲channel和无缓冲channel的区别的主要内容,如果未能解决你的问题,请参考以下文章

Golang 基础:原生并发 goroutine channel 和 select 常见使用场景

Golang 基础:原生并发 goroutine channel 和 select 常见使用场景

golang的缓冲channel简单使用

Golang中的channel代码示例----无缓冲有缓冲rangeclose

golang 初体验 - channel

golang查看channel缓冲区的长度