小编dea*_*dpa的帖子

如何阻止两个Receiver中的一个有可用数据?

我是Rust的新手,并尝试使用Senders和Receivers 设置节点的单向图std::sync::mpsc.现在,当每个节点只有一个父节点和一个子节点时,我可以使用它,如下所示:

fn run(mut self) {
    let parent = self.parent.unwrap();
    loop {
        match parent.recv() {
            Ok(input) => {
                self.value = (self.next_value)(input);
                match self.kid {
                    Some(ref k) => { k.send(self.value).unwrap(); },
                    None => {}
                }
            },
            Err(_) => {}
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

但我真正想要做的是有两个父节点,这里的next_value功能进行评估,并通知了子节点,只要任一父节点发出另一个值.我不能只使用阻塞recv()方法两次,并且使用轮询和非阻塞try_recv()调用可能会起作用,但它似乎效率很低.

有一个更好的方法吗?

rust

4
推荐指数
1
解决办法
93
查看次数

Scala群发URL下载

我最近对学习Scala感兴趣(目前主要通过Project Euler工作),我已经决定了一个我想写的简单程序:一个简单的并发下载程序.我很难绕过一个很好的方法来做这件事.

我很了解Python,我喜欢gevent库的工作方式.我想做的就是在这里用gevent解决.有没有一种简单的方法在Scala中做这样的事情,或者我完全走错了路?我看过Dispatch库,但似乎难以理解.我应该使用演员吗?

任何帮助或指导将不胜感激.谢谢.

concurrency scala http

3
推荐指数
1
解决办法
598
查看次数

标签 统计

concurrency ×1

http ×1

rust ×1

scala ×1