接收数据时缓冲区为空的情况

来源:7-4 Channel 接收数据的底层原理是什么?

慕仔9573397

2022-08-05

为什么会出现发送队列非空但是缓冲区为空的情况呢?
理由是:如果有缓冲区的话发送协程并不会休眠而是直接将数据放到缓冲区,接收协程在缓冲区取数据也会把在休眠的发送协程的数据拷贝到缓冲区并唤醒,这样就不会出现发送队列非空但是缓冲区为空的情况。
这种情况是不是只能是没有缓冲区的 channel?

写回答

1回答

Moody

2022-08-06

对,是没有缓存的情况
0
0

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程