¿Hay alguna diferencia entre las fibras, las corutinas y las hebras verdes y, en ese caso, qué es?

44

Hoy estuve leyendo varios artículos en Internet sobre fibras, coroutines e hilos verdes, y parece que estos conceptos tienen mucho en común, pero hay pequeñas diferencias, especialmente cuando hablamos de fibras y coroutines.

¿Hay un resumen conciso y correcto de lo que los hace diferentes entre sí?

    
pregunta DejanLekic 22.08.2014 - 16:59

1 respuesta

93

Un Fiber es un hilo ligero que utiliza la multitarea cooperativa en lugar de la multitarea preventiva. Una fibra en ejecución debe "ceder" explícitamente para permitir que otra fibra se ejecute, lo que hace que su implementación sea mucho más fácil que el núcleo o las hebras de usuario.

Un Coroutine es un componente que generaliza una subrutina para permitir múltiples puntos de entrada para suspender y reanudar la ejecución en ciertas ubicaciones. A diferencia de las subrutinas, las corutinas pueden salir llamando a otras coroutinas, que luego pueden regresar al punto en que fueron invocadas en la coroutina original.

Un Green Thread es un hilo programado por una máquina virtual (VM) en lugar de de forma nativa por el operativo subyacente sistema. Los subprocesos verdes emulan entornos de subprocesos múltiples sin depender de las capacidades del sistema operativo nativo, y se administran en el espacio del usuario en lugar del espacio del núcleo, lo que les permite trabajar en entornos que no tienen soporte de subprocesos nativos.

    
respondido por el Robert Harvey 22.08.2014 - 17:12

Lea otras preguntas en las etiquetas