我在一个线程中有两个
std::sync::mpsc
接收器,一个优先接收器和一个常规接收器。有什么方法可以原子地确保在使用常规队列之前排空优先级队列?我确保在 Sender
上存在先行关系,因此优先级操作总是先发送。
这是我目前的解决方案,我几乎可以肯定这是不正确的:
loop {
for priority_op in priority_rx.try_iter() {
match priority_op {
...
}
}
// A priority op, and then a regular op could arrive here
let op = rx.recv().unwrap();
match op {
...
}
}
如果这是不可能的,我可以使用什么替代架构(除了只有一个队列)来实现这种行为?