En el capítulo 8 de El lenguaje de programación Go, la siguiente declaración es hecho sobre el servidor de eco de concurrencia:
Los argumentos de la función iniciada por go se evalúan cuando se ejecuta la declaración go; por lo tanto, input.Text() se evalúa en la rutina principal.
Esta declaración significa que cuando se ejecuta la declaración go, la función input.Text() se evalúa inmediatamente y su resultado se pasa al go echo () gorutina. Esto contrasta con una llamada de función normal, donde los argumentos de la función se evalúan cuando se llama a la función y los resultados se pasan a la función llamada.
La razón de esta diferencia es que las declaraciones go comienzan una nueva goroutine, y las goroutines se ejecutan al mismo tiempo que la goroutine principal. Si los argumentos de la función iniciada por go se evaluaran cuando se llamó a la función, la rutina principal tendría que esperar a que se complete la función antes de iniciar la nueva rutina. Esto anularía el propósito del uso de gorutinas, que es permitir la concurrencia.
Al evaluar los argumentos de la función iniciada por go cuando se ejecuta la instrucción go, la gorutina principal no tiene que esperar a que llegue la función. para completar. Esto permite que las gorutinas se inicien simultáneamente, que es el comportamiento deseado.
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