Diferencias entre Actor Model y Threads - llpuchaicela/Threads_VS_Actor_Model GitHub Wiki
Diferencias entre Threads |
Thread :arrow_right: Es un hilo de proces ligero similar a un proceso donde puede tener uno o mas hilos y cada hilo contiene una pila y un bloque de control del hilo. |
:heavy_check_mark:Modelo de hilo Único a nivel de usuario: |
:arrow_right: donde cada proceso contiene un solo hilo. |
:heavy_check_mark:Modelo de subprocesos múltiples a nivel de usuario: :arrow_down: |
:arrow_right: Cada proceso contiene varios subprocesos. |
:arrow_right: Todos los subprocesos del proceso son programados por una biblioteca de subprocesos a nivel de usuario. |
:arrow_right: El cambio de hilo se puede hacer más rápido que el cambio de proceso. |
:arrow_right: El bloqueo de un hilo hace que se bloquee todo el proceso. |
:heavy_check_mark: Modelo de hilo único a nivel de kernel: |
:arrow_right: Cada proceso contiene un solo hilo |
:arrow_right: El hilo utilizado aquí es el hilo a nivel de kernel. |
:arrow_right: La mesa de proceso funciona como mesa de hilo. |
:heavy_check_mark: Modelo de subprocesos múltiples a nivel de kernel: |
:arrow_right: La programación de subprocesos se realiza a nivel de kernel. |
:arrow_right: Si un hilo se bloquea, se puede programar otro hilo sin bloquear todo el proceso. |
:arrow_right: La programación de subprocesos en el proceso Kernel es más lenta en comparación con la programación de subprocesos a nivel de usuario. |
:arrow_right: El cambio de hilo implica un cambio. |
Actor Model |
En si los actores son livianos y es muy facil crear millones de ellos, debido a que requieren menos recursos que los subprocesos. |
Toda la computacion es afectuada dentro del actor |
En respuesta a un mensaje recibido un actor puede: |
:heavy_check_mark: Cambiar su estado o comportamiento. |
:heavy_check_mark: Crear un numero infinito de actores hijos. |
:heavy_check_mark: Enviar mensajes a otros actores. |
:heavy_check_mark: El estado del actor esta aislado es decir nunca expuesto a mundo exterior. Este dato nos puede resultar interesante cuando estamos trabajando con aplicaciones ampliamente concurrentes, ya que no permitimos que los actores no puedan ver ni modificar el estado de otro actor. |
:heavy_check_mark: El actor no es igual a Thread. |
:heavy_check_mark: El actor no retiene el hilo para siempre |
:heavy_check_mark: Cuando el actor obtiene alguna tarea, Thread trabaja para que Actor termine la tarea |
:heavy_check_mark: Actor utiliza de manera eficiente hilos de Java |
:heavy_check_mark: Puede crear miles de actores y hacer su trabajo al mismo tiempo |
:heavy_check_mark: Cuando se usa Actor, no tiene que preocuparse por bloqueos y proteccion estatal. |
:heavy_check_mark: Un actor es solo una abstracción para conectar procesos asincrónicos. |
Actor Model :arrow_right: Las implementaciones más famosas de Actor Model son Akka y Erlang.
:arrow_right: Un modelo de actor en actor es una unidad fundamental de cálculo, puede realizar las siguientes acciones. Crear otro actor Enviar un mensaje Designar cómo manejar el siguiente mensaje.