Últimamente he estado leyendo muchos artículos sobre cómo la programación concurrente es difícil, y cómo la programación concurrente con estado compartido es casi imposible. Entonces, los lenguajes como Erlang (creo que esto está activado, si la pregunta aún tiene sentido) usan el modelo Actor para la concurrencia y no tienen estado compartido entre los hilos. Ahora, en mi tiempo programando sistemas concurrentes, no he encontrado que la concurrencia sea tan difícil, pero en general puedo adaptar casi cualquier problema al paradigma productor/consumidor y vivir sin mucho (si es que hay alguno) estado compartido. ¿Aunque es correcto? ¿Las colas de mensajes entre hilos realmente están compartidas? ¿O es el modelo productor/consumidor de programación concurrente realmente un ejemplo concreto del modelo Actor (esa es mi verdadera pregunta). ¿Pensamientos?¿El modelo de productor/consumidor es igual de actor?
Respuesta
Técnicamente, los mensajes compartidos representan el estado de la aplicación general, pero solo si los productores y los consumidores son en sí mismos apátridas (de lo contrario, simplemente representan los estados del medio de intercambio de mensajes/a). El modelo de productor/consumidor no es tanto un ejemplo del modelo de actor como lo es cada productor y consumidor individual. Los productores (que también pueden ser consumidores, ya sea de las mismas colas de mensajes compartidos o de fuentes externas) hacen lo que hacen y escuchan algún mensaje que se pone en cola. La cola misma puede considerarse un actor, aunque pasivo, ya que recibe/contiene mensajes y puede distribuirlos (o simplemente esperar a que se tomen). Los consumidores son actores en el sentido de que reciben/reciben mensajes de la cola compartida y hacen un trabajo basado en esos mensajes.
Así que, básicamente, mi respuesta es que el modelo productor/consumidor no es un ejemplo del modelo Actor, sino más bien un ejemplo de una colección de actores que trabajan en un entorno compartido.
- 1. ¿Cuál es la diferencia del Actor de Akka con el Actor de Scala modelo
- 2. ¿El modelo de seda y actor es esencialmente equivalente?
- 3. es el modelo de actor limitado a idiomas específicos?
- 4. Modelo de actor para reemplazar el modelo de roscado?
- 5. ¿Cuándo se debe usar el modelo Actor?
- 6. modelo de actor y detección de colisiones
- 7. ¿Qué es el modelo de actor en el contexto de un lenguaje de programación?
- 8. use zeromq para implementar el modelo de actor
- 9. Rails El modelo encuentra donde no es igual
- 10. ¿Qué biblioteca/marco modelo Actor para Java?
- 11. Rendimiento de transmisión de mensajes en Actor modelo
- 12. php no es igual a no es igual, igual a
- 13. Buen libro sobre la biblioteca de Akka y el modelo de simultaneidad basado en el actor
- 14. ¿Qué biblioteca/marco modelo Actor para Python y Erlang-like?
- 15. Diferencia entre Kahn Process Network y Actor Modelo
- 16. hay alguna biblioteca de red Scala con el modelo de actor
- 17. El archivo de Java es igual a
- 18. ¿Cuáles son las debilidades en el uso del modelo Immutability + Actor para la programación de simultaneidad?
- 19. ¿Cómo se "implementa" en los idiomas que admiten el modelo de actor?
- 20. Modelo de memoria Java 7 igual que JSR-133?
- 21. simple Scala pregunta el actor
- 22. Java es igual para una clase. Es == igual que .equals
- 23. campo del modelo Validar: si el valor es igual a una clave en un hash
- 24. No es igual condicional
- 25. JavaScript es = igual que ==
- 26. ¿Es zeromq la solución adecuada para el video chat de igual a igual
- 27. ¿Qué es el modelo de proceso Apache?
- 28. profundo de reflexión es igual a comparar
- 29. ¿Es java.lang.Math.PI igual a M_PI de GCC?
- 30. ¿Determina si una lista de Python es el 95% igual?
¿Hay algo intrínsecamente en el paradigma del actor que dice que no se pueden tener múltiples actores? – Gandalf
De la forma en que lo veo, el paradigma de actor es más representativo de una entidad, mientras que el paradigma productor/consumidor es más representativo de un sistema. – yoozer8
Aunque, supongo que podría considerar un sistema de productor/consumidor como Actor si existe en un entorno más amplio con otras entidades y puede interactuar con otras entidades en un sistema más grande. – yoozer8