Scala: Warum sind Schauspieler Leichtbau?
Frage
Was Akteure so leicht?
machtIch bin nicht einmal sicher, wie sie funktionieren. Sind sie nicht trennen Fäden?
Lösung
Wenn sie sagen, leichtgewichtige sie bedeuten, dass jeder Akteur nicht auf einen einzelnen Thread zugeordnet ist.
JVM bietet Shared-Memory-Threads mit sperrt als primäre Form von Parallelität Abstraktionen. aber geteilt Speicher Themen sind ziemlich Schwergewicht und incur schwere Leistungseinbußen von Kontextumschaltungsaufwand. Zum Schauspieler Implementierung auf einer Basis Eins-zu-Eins-Abbildung mit JVM Verknüpfungen, Der Prozess Nutzlast pro Scala Darsteller wird nicht so leicht sein, dass wir laichen eine Million Fälle von Schauspielern für eine bestimmte Berechnung. Daher Scala Schauspieler wurden entwickelt, wie leichte Ereignisobjekte, die erhalten geplant und ausgeführt auf einem darunter liegende Arbeiter-Thread-Pool, der automatisch angepasst wird, wenn alle Gewinde-Block auf langen Laufe Operationen. In der Tat, Scala Arbeitsgeräte ein einheitliches Modell der Schauspieler - Gewinde basiert und Ereignis basiert. Scala Schauspieler bieten zwei Form von Suspensions Mechanismen - ein vollständiger Stapelrahmen Suspension (implementiert, wie empfangen) und eine Suspension auf eine Fortsetzungs basierend Verschluss (implementiert als reagieren). Im Fall von ereignisbasierten Schauspieler, ein Warte auf reagieren durch eine Fortsetzung vertreten Verschluss, das heißt einen Verschluss, die Erfassungen der Rest der Berechnung des Akteurs. Wenn die aufgehängte Schauspieler erhält eine Nachricht, dass eines der Spiele Muster in dem Schauspieler angegeben, die Fortsetzung durch Scheduling ausgeführt die Aufgabe an einen der Arbeitsthreads von dem darunterliegenden Thread-Pool. Das Papier „Actor dass Unify Themen und Events“von Haller und Odersky bespricht die Details der Umsetzung.
Andere Tipps
Wichtige Referenz Schauspieler dass Unify Themen und Ereignisse
Ich glaube nicht, dass wir, dass die Schauspieler stärken sollte, ist, dass leichte .
zunächst Faden basierend Akteure sind Schauspieler pro Faden so nicht leichtgewichtige überhaupt.
ereignisbasierte Akteure sind der Punkt, wo wir Schauspieler geringes Gewicht beginnen zu fühlen. es ist leicht, weil es nicht funktionierte Wartethread hat und schaltete ein anderes zu, Gewindewerk wechselt nur aus einem Stück Datenarbeit zu einem anderen Stück von Daten arbeiten, so hält auf wirksame Berechnungen zu drehen.