func (m *FairMix) runSource(closed chan struct{}, s *mixSource) {
defer m.wg.Done()
defer close(s.next)
for s.it.Next() {
n := s.it.Node()
fmt.Println("discmix Addsource : ", n.ID())
select {
case s.next <- n:
fmt.Println("s.next <- n :", n.ID())
case m.fromAny <- n:
fmt.Println("m.fromAny <- n :", n.ID())
case <-closed:
return
}
}
}
这是以太坊 geth 1.9.25v 代码。
在操作中,这两个 &变量都在等待 。selects.nextm.fromAnyn
但是当我运行程序时,与大小写相比,被更频繁地选择。case s.next <- nm.fromAny <- n
我能知道哪个案例会首先被选中吗?如果多个案例准备就绪,是否有某种选择案例的算法?
慕斯王
慕村225694
随时随地看视频慕课网APP
相关分类