Maison > développement back-end > Golang > le corps du texte

Pourquoi `input.Text()` est-il évalué dans la routine principale lors de l'utilisation des instructions `go` ?

Patricia Arquette
Libérer: 2024-11-14 09:26:01
original
577 Les gens l'ont consulté

Why is `input.Text()` Evaluated in the Main Goroutine When Using `go` Statements?

Pourquoi input.Text() est évalué dans le Goroutine principal

Dans le chapitre 8 de Le langage de programmation Go, l'instruction suivante est fait à propos du serveur d'écho de concurrence :

Les arguments de la fonction démarrée par go sont évalués lorsque l'instruction go elle-même est exécutée ; ainsi input.Text() est évalué dans la goroutine principale.

Cette instruction signifie que lorsque l'instruction go est exécutée, la fonction input.Text() est immédiatement évaluée et son résultat est passé à go echo () goroutine. Cela contraste avec un appel de fonction normal, où les arguments de la fonction sont évalués lorsque la fonction est appelée et les résultats sont transmis à la fonction appelée.

La raison de cette différence est que les instructions go démarrent un nouveau goroutine, et les goroutines sont exécutées en même temps que la goroutine principale. Si les arguments de la fonction démarrée par go étaient évalués lors de l'appel de la fonction, la goroutine principale devrait attendre que la fonction soit terminée avant de démarrer la nouvelle goroutine. Cela irait à l'encontre de l'objectif de l'utilisation des goroutines, qui est d'activer la concurrence.

En évaluant les arguments de la fonction démarrée par go lorsque l'instruction go elle-même est exécutée, la goroutine principale n'a pas à attendre la fonction. à compléter. Cela permet aux goroutines d'être démarrées simultanément, ce qui est le comportement souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal