Ich lerne und verstehe Akka Schauspieler Modell mit einigen grundlegenden Beispielen.Akka Schauspieler verarbeitet die zweite Nachricht vor der Verarbeitung der ersten Nachricht
Ich erstellte zwei Instanzen für einen gleichen Akteur (d. H. "Helloworld1" und "helloworld2" und Senden von Nachrichten an diesen Akteur. Die erste Nachricht wird von der Instanz "helloworld1" und die zweite Nachricht von "helloworld2" gesendet.
Wenn ich laufe den Code unten i Ausgang erhalten, wie unten
Yes you made it Hi helloworld2
Yes you made it Hi helloworld1
Meine Frage ist, warum ist es die zweite Nachricht zuerst verarbeitet wird? Ich hatte erwartet, die Ausgabe als unten, weil die erste Nachricht von HelloWorld1 gesendet wird
Yes you made it Hi helloworld1
Yes you made it Hi helloworld2
-Code für ActorApp:
import akka.actor.{ActorSystem, Props}
object ActorApp {
def main(args :Array[String]) ={
val system = ActorSystem("SimpleActorSystem")
val actorObj1 = system.actorOf(Props[HelloWorld],"helloworld1")
actorObj1 ! "Hi helloworld1"//first message sent
val actorObj2 =system.actorOf(Props[HelloWorld],"helloworld2")
actorObj2 ! "Hi helloworld2"//second message sent
}
}
-Code für Schauspieler:
import akka.actor.Actor
class HelloWorld extends Actor {
def receive = {
case dataStr:String => println("Yes you made it "+dataStr)
}
}
Die Reihenfolge der Nachrichten wird im selben Akteur garantiert, nicht zwischen den Akteuren –