Diferencias entre el modelo de actor y los procesos secuenciales de comunicación (CSP)


16

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:

¿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

Un gran punto: en CSP el paso de mensajes es sincrónico; en Actores, el paso de mensajes es asíncrono.
Dave Clarke el

@hawkeye ¿Qué crees que es "el" modelo de actor? Desde su descripción informal, han aparecido muchas formalizaciones, con propiedades algo diferentes.
Martin Berger

@ Martin - eso es útil. He actualizado mis suposiciones. Tal vez usted puede ayudar a encontrar la "única que estoy buscando"
Hawkeye

@hawkeye ¿Qué quieres decir con el modelo Akka? ¿Solo el mecanismo computacional clave, o también el marco de monitoreo distribuido / manejo de errores?
Martin Berger

@MartinBerger sólo el mecanismo de cálculo clave
Hawkeye

Respuestas:


6

Así es como creo que funciona Erlang. Creo que Akka es muy similar.

Cada proceso tiene un solo buzón. El remitente coloca los mensajes en el buzón del receptor y el receptor los recupera mediante la coincidencia de patrones. Este proceso de coincidencia puede cambiar el orden de los mensajes en el sentido de que el mensaje más antiguo en un buzón puede no coincidir, pero uno más joven sí. En este caso, el más joven se consume primero. Aparte de eso, se conserva el orden de los mensajes.

ππ

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.