goroutines y la importancia de Time.sleep ()
cuando se trabaja con Goroutinas, es común encontrar la necesidad de Time.sleep (). Este artículo se sumerge en la importancia de Time.sleep () en la ejecución de Goroutine, explorando las consecuencias de omitirlo.
entendiendo goroutinas
goroutines son hilos livianos de ejecución en Go. A diferencia de los hilos, las goroutinas son administradas por el tiempo de ejecución de GO y compartir la memoria con otras goroutinas en el programa.
El papel de Time.sleep ()
En el ejemplo proporcionado, la función Say () es una goroutina responsable de imprimir "mundial" a la pantalla. La declaración Time.sleep () retrasa artificialmente la ejecución de la Goroutine para 100 milisegundos por iteración.
sin tiempo.sleep ()
si se elimina la declaración de tiempo.sleep (), el "mundo") nunca tiene la oportunidad de correr. Esto se debe a que el programador GO Goroutine no es preventivo. Las goroutinas se producen voluntariamente el control, permitiendo que otras goroutinas se ejecuten.
la goroutine primaria
la función main () en este ejemplo es la goroutina primaria. Cuando se elimina el tiempo.sleep (), la goroutina primaria se ejecuta digo ("hola") 5 veces sin renunciar al control. Como resultado, la goroutine Say ("World") nunca se ejecuta, y solo "hola" se imprime en la pantalla.
manteniendo la ejecución del programa
en ausencia de tiempo.sleep (), la goroutina primaria finaliza la ejecución y las salidas del programa. Esto se debe a que ninguna otra goroutina se está ejecutando para mantener vivo el programa. Por el contrario, cuando se usa Time.sleep (), Say ("World") Goroutine produce control, lo que permite que la Goroutine primaria se ejecute y el programa continúe ejecutándose.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3