我正在尝试在两个go频道之间实现一个隧道(注意我很新)。我的goroutine看起来像这样:
consumer := ...
producer := ...
go func() {
for jsn := range producer {
msg, err := ops.FromJSON(jsn)
if err != nil {
log.Print(err)
continue
}
consumer <- msg
}
}()
这虽然似乎有一些问题。如何检查消费者是否已经关闭?如何解决从生产者那里获取消息并将其发送给消费者之间的竞争? ......也许还有其他人。
有人能提供两个频道之间隧道的好例子吗?