1

这是我在这里的第一条消息,我很高兴加入这个社区。

看起来现在一切都在朝着多线程开发方向发展。大鱼说,达到数百个核心不会需要更长的时间。

我最近阅读了有关基于actor的开发以及消息传递是如何处理并发编程的精彩内容。此外,我还读到它们可以作为方法调用的一种手段来实现。在这种情况下,给定的对象也是一个演员。

换句话说,我们不再随意调用方法。他们在队列中发布以进行后期处理。然后,队列确保不会同时修改对象的状态(var),因为消息都是序列化的。

我知道这个模型很容易实现(至少是一个实验模型),也许这就是为什么很难找到任何技术细节的原因。

我的问题涉及队列。这是多个生产者和一个消费者的典型案例,我怀疑他们需要某种同步。真的吗?会有另一种解决方案吗?我听说它们可以实现为无锁结构。

我不太确定。任何评论将不胜感激。

祝朋友们度过愉快的一天

4

2 回答 2

1

多个生产者和单个消费者是使用 Actors 的绝佳场景,并且不需要任何同步。在 Scala 中,使用 Actors 时通常不使用任何可变状态。您只需发送一份需要处理的任何数据的副本。

您可以在“Programming Scala”中阅读更多关于 Scala 中的 Actors 的信息,可免费在线获取。

于 2009-12-08T06:26:30.380 回答
0

如果我理解正确,代理会在 MailBox 中收到消息,其行为类似于并发队列。所以你不必关心它。如果你想直接玩邮箱,你可以看看这篇很棒的文章“忙碌的Java 开发人员 Scala 指南”系列。

于 2009-11-29T23:29:25.557 回答