假设我有一个缓冲 channel ,不同的函数 {A、B、C 和 D} 在不同的时间向 channel 发送值。现在,如果我从 channel 读取通知,有什么方法可以确定它来自哪个发件人?从逻辑上讲,我会假设不,但我对 channel 内部结构的了解还不够多,无法知道什么是可能的?
如果这个 channel 可能是一个无缓冲的 channel ,您能否找到相应的发送者,就好像您正在接收一个值,您不能继续前进,直到有一个发送者在那个确切的时间发送。
唯一的方法是确保加载 delve 并查看当时正在运行的所有 goroutines 还是在每次发送到 channel 之前放置日志语句?
谢谢
最佳答案
无法判断是谁发送了您从 channel 收到的值。
但是如果您需要的话,它很容易实现。只需将值和发送者 ID 包装在一个结构中,并修改发送者以在 channel 上发送一个结构值,填充发送者 ID。
关于go - 您能否以编程方式确定值从接收方沿 go channel 发送的发送方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61407988/