Gdy spojrzymy na model aktora i komunikację procesów sekwencyjnych , widzimy, że obaj próbują wykonywać współbieżność w oparciu o przekazywanie wiadomości , ale są odrębni .
(Widzimy implementacje CSP modelu w odchodzeniu-lang „s goroutines (i Clojure za core.async ) i Aktora w modelu Scala Akka Toolkit)
Próbuję uzyskać prostą listę różnic między modelem aktora a CSP. Do tej pory mam:
- przekazywanie wiadomości aktorów jest asynchroniczne, przekazywanie wiadomości CSP jest synchroniczne
- aktorzy są dający się komponować , CSP nie jest (koniecznie)
- aktorzy zawsze mają nieograniczony niedeterminizm , CSP mógł mieć nieograniczony lub nieograniczony niedeterminizm
- aktorzy mają zmienną topologię, podczas gdy CSP ma ustaloną topologię
- aktorzy mają zasadę lokalizacji , CSP nie ma lokalizacji
- aktorzy są projektowani wokół swojego zachowania, CSP niekoniecznie ma to
Czy to jest poprawne? Czy czegoś mi brakuje?
Założenia
- Kiedy mówię „model aktora” - mam na myśli teoretyczne podstawy implementacji w środowisku Akki Scali