老师,您好!
在学习channel这一章节时,学生记住了一条结论:goroutine的生产与消费都需要准备就绪,理解的白话文就是channel像是一个流水的管道,进与出都需要准备好,否则容易产生死锁deadlock。
但在学生后续的练习与思考中,如上面截图的代码
forever:是一个无缓冲的通道
<- forever:没有任何goroutine向管道生产数据,一直阻塞中
但结果上述代码并没有出现死锁deadlock的现象,一直循环打印555
这个现象的产生好像与学生记住的结论有些违背,因此产生了困惑,只有消费,没有生产,也没有产生死锁deadlock,好像学生总结的结论并不是正确的
难道go程序认为我开启了一个goroutine,会有机会向forever生产数据吗?