2

Scala でアクターを使用する場合、メッセージが送信した順序で到着するかどうかわかりません。dart のアイソレートは、メッセージが送信した順序で受信されることを保証しますか?

4

1 に答える 1

3

興味深い質問です。仕様のどこかで見た覚えがありません (しかし、私が間違っている可能性があり、仕様の他の部分から派生している可能性があります) が、一般的に、Dart のメッセージは常にenqueuedであると言われています。注文されています。

VM を見ると、そのように見えます。実際には、「通常の」メッセージと帯域外 (OOB) メッセージの 2 つのキューがあります。OOB メッセージは常に通常のメッセージよりも優先されますが、現在はミラー API を実装するためにのみ使用されるため、これは問題ではありません。優先度の概念はありません(通常/OOB の区別以外)。一般的に、答えはイエスだと思います。メッセージは送信されたのと同じ順序で受信されます。

ときどき、Dart の人々は、ネットワークを介したアイソレート間のメッセージ パッシングの使用について話します(つまり、1 つのアイソレートが 1 つのコンピュータに存在し、別のアイソレートが別のコンピュータに存在し、透過的に通信します)。この質問をもう一度するのは理にかなっています (答えが同じままであることを願っています)。

于 2012-06-27T14:20:06.410 に答える