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!