2

如果您在 Scala 中使用演员,您不知道消息是否按您发送它们的顺序到达,dart 中的隔离是否确保它的消息按照您发送它们的顺序被接收?

4

1 回答 1

3

有趣的问题。我不记得在规范中的任何地方看到过它(但我可能是错的,它可能来自规范的其他部分),但总的来说,Dart 中的消息总是被称为enqueued,这也意味着它们被订购。

从查看 VM 来看,情况似乎如此。实际上,有两个队列——“正常”消息和带外 (OOB) 消息。OOB 消息始终优先于普通消息,但它们目前仅用于实现镜像 API,因此无需担心。没有优先级的概念(除了普通/OOB 区别)。总的来说,我认为答案是肯定的,您接收消息的顺序与发送消息的顺序相同

有时,Dart 人谈论通过网络在隔离之间使用消息传递(这样一个隔离存在于一台计算机上,另一个隔离存在于另一台计算机上并且它们透明地通信)——一旦实现,它将成为一个伟大的再次问这个问题是有意义的(我希望答案保持不变)。

于 2012-06-27T14:20:06.410 回答