Коли ми дивимось на модель актора та комунікаційні послідовні процеси, ми бачимо, що вони обидва намагаються зробити паралельність на основі передачі повідомлень , але вони є різними .
(Ми бачимо реалізації НСП моделі в ходу-лані «s goroutines (і Clojure в core.async ) і актор модель в компанії Scala Akka інструментарії)
Я намагаюся отримати простий перелік відмінностей між Акторською моделлю та CSP. Поки що я маю:
- передача повідомлень акторів асинхронна, передача повідомлень CSP - синхронна
- актори композиційні , CSP не є (обов'язково)
- актори завжди мають необмежений недетермінізм , ДСП може бути обмеженим або необмеженим недетермінізмом
- суб'єкти мають змінну топологію, тоді як ДСП має фіксовану топологію
- актори мають принцип локальності , ЦСП не має місцевості
- актори розроблені навколо своєї поведінки, CSP не обов'язково цього має
Це правильно? Що-небудь мені не вистачає?
Припущення
- Коли я кажу «акторська модель» - я маю на увазі теоретичну основу, що лежить в основі впровадження в рамки «Акка» Скали