Różnice między modelem aktora a komunikacją procesów sekwencyjnych (CSP)

16

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:

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
Sokole Oko
źródło
Ogromny punkt: w CSP przekazywanie wiadomości jest synchroniczne; w Aktorach przekazywanie wiadomości jest asynchroniczne.
Dave Clarke
@hawkeye Co uważasz za model aktorski? Od czasu nieformalnego opisu pojawiło się wiele formalizacji o nieco innych właściwościach.
Martin Berger,
@Martin - to pomocne. Zaktualizowałem moje założenia. Może pomożesz mi znaleźć „tego, którego szukam”
hawkeye
@hawkeye Co rozumiesz przez model Akka? Tylko kluczowy mechanizm obliczeniowy, a także rozproszone ramy monitorowania / obsługi błędów?
Martin Berger
@MartinBerger tylko kluczowy mechanizm obliczeniowy
hawkeye

Odpowiedzi:

6

Oto, jak myślę, jak działa Erlang. Uważam, że Akka jest bardzo podobna.

Każdy proces ma jedną skrzynkę pocztową. Wiadomości są umieszczane w skrzynce odbiorczej przez nadawcę i pobierane przez odbiorcę za pomocą dopasowania wzorca. Ten proces dopasowywania może zmieniać kolejność wiadomości w tym sensie, że najstarsza wiadomość w skrzynce pocztowej może nie pasować, ale młodsza. W tym przypadku młodszy jest konsumowany jako pierwszy. Poza tym kolejność wiadomości jest zachowana.

ππ

Martin Berger
źródło