Wenn wir uns das Actor Model und Communicating Sequential Processes ansehen, stellen wir fest, dass beide versuchen, auf der Grundlage der Nachrichtenübergabe eine Parallelität herzustellen , aber sie unterscheiden sich .
(Wir sehen Implementierungen des CSP Modell in go-lang ‚s goroutines (und Clojure der core.async ) und der Schauspieler Modell in Scala Akka - Toolkit)
Ich versuche, eine einfache Liste der Unterschiede zwischen dem Actor Model und dem CSP zu erstellen. Bisher habe ich:
- Die Nachrichtenübermittlung der Akteure erfolgt asynchron, die CSP-Nachrichtenübermittlung erfolgt synchron
- Schauspieler sind komponierbar , CSP ist nicht (unbedingt)
- Akteure haben immer einen uneingeschränkten Nichtdeterminismus , CSP kann einen uneingeschränkten oder uneingeschränkten Nichtdeterminismus haben
- Akteure haben eine variable Topologie, während CSP eine feste Topologie hat
- Akteure haben das Prinzip der Lokalität , CSP hat keine Lokalität
- Schauspieler sind auf ihr Verhalten ausgelegt, CSP muss dies nicht unbedingt haben
Ist das richtig? Fehlt mir etwas?
Annahmen
- Wenn ich "Actor Model" sage, meine ich die theoretische Grundlage für die Implementierung in Scalas Akka-Framework