For faster navigation, this Iframe is preloading the Wikiwand page for Corrutina.

Corrutina

En un programa, una corrutina es una unidad de tratamiento semejante a una subrutina, con la diferencia de que, mientras que la salida de una subrutina pone fin a esta, la salida de una corrutina puede ser el resultado de una suspensión de su tratamiento hasta que se le indique retomar su ejecución (multitarea cooperativa). La suspensión de la corrutina y su reanudación pueden ir acompañadas de una transmisión de datos.

Las corrutinas permiten realizar tratamientos basados en algoritmos cooperativos como iteradores, generadores, tuberías, etcétera.

Según Donald Knuth, el término corrutina fue inventado por Melvin Conway en 1958, cuando trabajaba en la escritura de un programa en ensamblador.[1]​ Más tarde, Conway propuso organizar un compilador en un conjunto de corrutinas, lo que trajo la posibilidad de utilizar diferentes rutas durante la depuración y de utilizar una sola estructura en producción.[2]

Ventajas

  • La corrutina es más liviana, el costo de creación es menor y el consumo de memoria se reduce.
  • El programador de modo de usuario cooperativo reduce la sobrecarga del cambio de contexto de la CPU y mejora la tasa de aciertos de la caché de la CPU

Desventajas

  • No puede haber operaciones de bloqueo en la ejecución de la corrutina, de lo contrario se bloquea todo el hilo (la corrutina está en el nivel de idioma, el hilo y el proceso pertenecen al nivel del sistema operativo).
  • Es necesario prestar especial atención al uso de variables globales y referencias a objetos.
  • Las corrutinas pueden manejar la eficiencia de los programas intensivos en E / S, pero procesar programas intensivos en CPU no es su fortaleza.[3]

Véase también

Referencias

  1. Knuth, Donald Ervin (1997). «1.4.5: History and Bibliography». Fundamental Algorithms. The Art of Computer Programming (en inglés) (3.ª edición). Addison-Wesley. p. 229. ISBN 0-201-89683-4. 
  2. Conway, Melvin E. (julio de 1963). «Design of a separable transition-diagram compiler». Communications of the ACM (en inglés) 6 (7). 
  3. «Sistema operativo (6) -Corutina - programador clic». programmerclick.com. Consultado el 12 de diciembre de 2021. 
{{bottomLinkPreText}} {{bottomLinkText}}
Corrutina
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?