Cuando observamos el Modelo de actor y los Procesos secuenciales de comunicación , vemos que ambos intentan hacer concurrencia en función del paso de mensajes , pero son distintos .
(Vemos implementaciones del modelo CSP en las rutinas de go-lang (y core.async de Clojure ) y el modelo de actor en el kit de herramientas Akka de Scala )
Estoy tratando de obtener una lista simple de las diferencias entre el modelo de actor y CSP. Hasta ahora tengo:
- el paso del mensaje de los actores es asíncrono, el paso del mensaje CSP es sincrónico
- los actores son componibles , CSP no (necesariamente)
- los actores siempre tienen no determinismo ilimitado , CSP puede tener no determinismo limitado o ilimitado
- los actores tienen topología variable mientras que CSP tiene topología fija
- los actores tienen el principio de localidad , CSP no tiene localidad
- los actores están diseñados en torno a su comportamiento, CSP no necesariamente tiene esto
¿Es esto correcto? ¿Hay algo que me falta?
Supuestos
- Cuando digo 'modelo de actor', me refiero a la base teórica detrás de la implementación en el marco Akka de Scala