如何在发件人上复用?

时间:2015-04-14 06:54:36

标签: rust

我有一堆SyncSenders。我希望得到一个"准备发送"集。

目前我正在这样做:

for c in data {
  loop {
    for tx in sync_senders {
      if let Ok(_) = tx.try_send(c) {    
        do something;
        ...
      }
    }
    until some sends are success, break
  }
}  

有没有办法在SyncSenders上进行多路复用,所以我可以准备好它们吗?

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,我可能只是建立另一个(异步)通道,并让工作线程在它们空闲时立即发送回发送者......

 while let Ok(sender) = sync_senders.recv() {
    ...
 }

但你为什么要那样做呢?也许multiple-consumer channel更适合您的目的?