您可以通过编程方式确定从接收者沿go通道发送值的发送者吗?

可以说我有一个缓冲的通道,具有不同的功能{A,B,C和D}在不同的时间将值发送到通道中。现在,如果我从通道中读取了通知,是否可以确定它来自哪个发件人?从逻辑上讲,我假设没有,但我对通道内部没有足够的了解,以了解可能的结果吗?

如果此通道可能是未缓冲的通道,那么您能否找到相应的发送者,就像您正在接收的值一样,就不能继续前进,直到在那个确切的时间有一个发送者在发送。

是确保加载delve并查看当时正在运行的所有goroutine或在每次发送至通道之前放入日志记录语句的唯一方法吗?

谢谢

评论
  • 随怀芹
    随怀芹 回复

    无法确定是谁发送了您从渠道收到的值。

    但是,如果需要,很容易实现。只需将值和发送方ID包装在结构中,然后修改发送方以在通道上发送结构值,并填充其ID。