ParseStream的问题

来源:12-5 实现ParseStream

c9870884

2023-04-09

老师,请问业务层调用parseStream后,在parseSteam里面开启一个go程,然后parseSteam返回一个管道。这里面具体的一个过程是怎么样的呀?
比如是业务层调用parseSteam后,parseSteam需不需要等待go程的解析呢?还是说可以立即返回一个管道?
第二个问题就是:如果parseSteam返回一个管道结束后,那这个parseSteam函数运行结束了,里面的go程还会在运行吗?

写回答

1回答

慕瓜9063200

2023-04-09


我的理解是,调用parseSteam直接返回一个管道,

for payload := range ch {}

这里遍历管道,与parse0是同步的,也就是parse解析一条数据后就放入管道,如果没有数据那么这个for循环就会阻塞,直到parse0有数据放入管道中。第二个问题,我的理解是handle这个协程只要他没有结束,那么它里面的协程也不会结束。

0
2
c9870884
谢谢你
2023-04-10
共2条回复

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

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

474 学习 · 172 问题

查看课程