Kann Scalas Schauspieler Framework 10.000 Schauspieler ohne Stapelprobleme bewältigen?
-
06-07-2019 - |
Frage
Ich möchte eine Multi-Agent-Simulation mit etwa 10.000 Agenten (Maschinen- und Produktagenten) unter Verwendung des Scala Actor-Frameworks durchführen.
Wie ich verstehe, kann der Stapel aufgrund der Rekursion aus dem Stapel ausgehen, wenn es viele Schauspieler gibt?
Wenn ja, wie kann ich die Stapelgrößen für die zugrunde liegenden Arbeiterfäden erhöhen?
Lösung
Das Schauspieler -Framework wurde so konzipiert, dass dies mit nur einem Thread verarbeitet wird, vorausgesetzt, Sie verwenden die loop-react
Muster wie folgt:
import actors._
import actors.Actor._
val a = actor {
loop {
react {
case ABC => //Handle here
}
}
}
Auf PP 590-593 von Programmierung in Scala Dies wird ausführlicher besprochen: Grundsätzlich die react
Die Methode kehrt nie normal zurück (sie endet mit Ausnahme) und daher muss der Anrufstack nicht erhalten bleiben. Sie können es als für immer als Schlaufe vorstellen.