Goroutines et l'importance de Time.Sleep ()
Lorsque vous travaillez avec Goroutines, il est courant de rencontrer le besoin de Time.Sleep (). Cet article plonge dans la signification de Time.Sleep () dans l'exécution de Goroutine, explorant les conséquences de l'omettre.
Comprendre les goroutines
Les goroutines sont des threads légers de l'exécution dans GO. Contrairement aux threads, les Goroutines sont gérés par le GO Runtime et partagent de la mémoire avec d'autres Goroutines dans le programme.
Le rôle de Time.Sleep ()
dans l'exemple fourni, la fonction Say () est une gorouttine responsable de l'impression "mondiale" à l'écran. L'énoncé Time.Sleep () retarde artificiellement l'exécution de Goroutine pour 100 millisecondes par itération. En effet, le planificateur Go Goroutine n'est pas préemptif. Goroutines donne volontairement un contrôle, permettant à d'autres Goroutines d'exécuter.
La goroutine principale
La fonction Main () dans cet exemple est le goroutine principal. Lorsque Time.Sleep () est supprimé, le Goroutine principal exécute Say ("Hello") 5 fois sans renoncer au contrôle. En conséquence, le Say ("World") Goroutine ne peut jamais s'exécuter, et seul "Hello" est imprimé à l'écran. En effet, aucun autre Goroutins ne fonctionne pour maintenir le programme en vie. Inversement, quand Time.Sleep () est utilisé, le Goroutine Say ("World") donne un contrôle, permettant au Goroutine principal de s'exécuter et du programme à continuer de fonctionner.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3