Quando osserviamo il modello di attore e i processi sequenziali comunicanti , vediamo che entrambi stanno provando a fare concorrenza sulla base del passaggio dei messaggi , ma sono distinti .
(Vediamo implementazioni del Modello CSP in go-lang 's goroutines (e di Clojure core.async ) e il modello attore di Scala Akka toolkit)
Sto cercando di ottenere un semplice elenco delle differenze tra Actor Model e CSP. Finora ho:
- il passaggio del messaggio agli attori è asincrono, il passaggio del messaggio CSP è sincrono
- gli attori sono compostabili , CSP non è (necessariamente)
- gli attori hanno sempre un non determinismo illimitato , il CSP può avere un non determinismo limitato o illimitato
- gli attori hanno una topologia variabile mentre CSP ha una topologia fissa
- gli attori hanno il principio di località , CSP non ha località
- gli attori sono progettati attorno al loro comportamento, CSP non ha necessariamente questo
È corretto? C'è qualcosa che mi manca?
ipotesi
- Quando dico "modello dell'attore", intendo le basi teoriche alla base dell'implementazione nel framework Akka di Scala