Rust 如何在发送者上进行多路复用?

Rust 如何在发送者上进行多路复用?,rust,Rust,我有很多同步发送者。我想买一套“准备发送”的 目前我正在这样做: 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 } } 有没有一种方法可以在SyncSender上进行多

我有很多同步发送者。我想买一套“准备发送”的

目前我正在这样做:

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
  }
}  

有没有一种方法可以在SyncSender上进行多路复用,这样我就可以得到一组现成的同步发送器?

有很多方法可以做到这一点,我可能只需要设置另一个(异步)通道,让工作线程在空闲时尽快将其发送器发送回来

 while let Ok(sender) = sync_senders.recv() {
    ...
 }
但你为什么要这么做?也许a更适合你的目的