J'ai la confusion sur ce qui est la séquence des messages est arrivé dans la boîte aux lettres dans le code suivant:Séquence d'arrivée de messages dans la boîte aux lettres de l'acteur lors de l'utilisation ask et tell
class myAct extends Actor {
def receive = {
case 1 =>
println(1)
case 2 =>
sender ! 90
case 3 =>
println(3)
}
}
Dans le pilote que j'envoie des messages à l'acteur
myActor ! 1
myActor.ask(2).mapTo[Int].onComplete {
case Success(x) =>
println(x)
case Failure(ex) =>
println(ex)}
myActor ! 3
la question est dans quel ordre seront les messages livrés à la boîte aux lettres. Je vais toujours arriver en premier. arrivera toujours en dernier. Y a-t-il une possibilité d'arriver 2 avant 1.
La commande est toujours garantie quand '!' Puis '?' Est fait à partir d'un non-acteur. C'est aussi simple que "! Cela arrivera avant?". FYI '?' Est juste un special '!' De toute façon - cela fait des choses quand il reçoit une relpy dans un acteur spécial qui est créé quand vous le faites. –
@ Konrad'ktoso'Malawski Réponse mise à jour en conséquence, merci pour la clarification. –