Zunächst alle möglichen irreführenden Fakten zu entfernen: Es ist kein Thread zugewiesen als verantwortlich für einen bestimmten Akteur. Daher, wenn Sie sagen, I have an actor myAct running on thread with id 10
- könnte dies richtig sein, aber nur zu dieser bestimmten Zeit.
Snippet aus der Dokumentation Akka offiziell:
Hinter den Kulissen Akka werden Sätze von Akteuren auf Gruppen von realen Threads laufen, wo in der Regel viele Akteure einen Thread teilen, und die anschließenden Anrufungen eines Akteurs kann beenden auf verschiedenen Threads verarbeitet werden. Akka stellt sicher, dass dieses Detail die Umsetzung nicht wirkt sich die Single-threadedness
Zweitens Nachrichtenübermittlung und Verarbeitung sind zwei verschiedene Tätigkeiten innerhalb Schauspieler, die sich höchstwahrscheinlich auf verschiedenen geschieht der Schauspieler Zustand der Handhabung Fäden.
Wenn Sie eine Nachricht an einen Akteur senden, senden Sie sie nur an ActorRef, der sich dann an den Dispatcher wendet und ihn zum Einreihen der Nachricht in das Postfach des Zielakteurs verwendet. Daher ist die einzige Blockierung, die aus der Sicht des Aufrufers auftritt, der Vorgang der Enqueueing der Nachricht. Danach kann die gesamte zusätzliche Arbeit und Verarbeitung in einem separaten Thread ausgeführt werden.
Ich hoffe, das war hilfreich.