关于读取后触发写模块

来源:2-3 读取模块实现

ellydebug

2019-05-13 11:06


func main(){
    ...
    go lp.read.Read(lp.chanRead)
    go lp.Process()
    go lp.write.Write(lp.chanWrite)
    time.Sleep(10 * time.Second)
    ...
}

在main函数中开启goroutine 执行了 read、process、write三个方法,process、write方法只执行了一次。

为何每次读到新数据,都会再次触发 lp.Process() 和 lp.write.Write() ?

写回答 关注

2回答

  • 慕妹2184772
    2020-06-30 21:08:51

    有新数据来的时候,会通过监听的通道将数据送入Process协程,处理完又通过另一通道将处理好的数据送入Write协程,各协程均准备就绪,通道处于监听状态

  • knowledgebao
    2019-05-17 23:51:55

    没有吧,后来加for循环和slect才可以的

Go并发编程案例解析

课程带你通过一个真实的线上日志监控系统学习Golang以及并发的编程思想。

15207 学习 · 53 问题

查看课程

相似问题