Lectura (lo suficientemente descremada para obtener la codificación) a través de Erlang Programming y Programming Erlang.Orden de tiempo de los mensajes
Una pregunta, que es tan simple como suena:
Si usted tiene un proceso Pid1
en la máquina m1
y mil millones de millones de mensajes se envían a Pid1
,
son mensajes manejados en paralelo por ese proceso (recibo la impresión no) y
(contestado abajo)
¿hay alguna garantía de orden al procesar los mensajes? es decir. Recibido en orden enviado? Si es así, ¿cómo se maneja el sesgo del reloj en situaciones de alto tráfico para realizar un pedido?
Viniendo de todo el fondo de C/Thread pools/Shared State ... Quiero obtener este concreto. Entiendo la distribución de una aplicación, pero quiero asegurarme de que los 'huesos en bruto' sean los que espero antes de crear procesos y distribuir la carga de trabajo.
Además, estoy en lo cierto al pensar el mundo entero es que chasquea la actualidad a través de textos Erlang;)
+1, una buena respuesta sólida. Mi pensamiento sobre el paso de mensajes es mucho más claro ahora que si A y B envían muchos mensajes a C, entonces ningún orden (de la unión de los mensajes A y B) es concreto. Algo para tener en cuenta en la "colocación de preocupaciones" en el diseño, creo. –
Joe Armstrong hace una analogía (http://armstrongonsoftware.blogspot.com/2006/08/concurrency-is-easy.html) que me gusta mucho. Las garantías de pedido que obtienes son exactamente las mismas que con un grupo de personas que se hablan entre sí. – cthulahoops
¡Gran enlace, gracias! –