No capítulo 8 de The Go Programming Language, a seguinte afirmação é feito sobre o servidor de eco de simultaneidade:
Os argumentos para a função iniciada por go são avaliados quando a própria instrução go é executada; portanto, input.Text() é avaliado na goroutine principal.
Esta instrução significa que quando a instrução go é executada, a função input.Text() é imediatamente avaliada e seu resultado é passado para go echo () gorotina. Isso contrasta com uma chamada de função normal, onde os argumentos da função são avaliados quando a função é chamada e os resultados são passados para a função chamada.
A razão para essa diferença é que as instruções go iniciam uma nova goroutine e goroutines são executados simultaneamente com a goroutine principal. Se os argumentos para a função iniciada por go fossem avaliados quando a função fosse chamada, a goroutine principal teria que esperar a conclusão da função antes de iniciar a nova goroutine. Isso anularia o propósito de usar goroutines, que é permitir a simultaneidade.
Ao avaliar os argumentos para a função iniciada por go quando a própria instrução go é executada, a goroutine principal não precisa esperar pela função para completar. Isso permite que as goroutines sejam iniciadas simultaneamente, que é o comportamento desejado.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3