Maison > Article > développement back-end > Pourquoi mon Goroutine ne fonctionne-t-il pas sous Windows ?
Comprendre le comportement des goroutines sous Windows
Dans votre programme de test, vous définissez une goroutine nommée test() qui imprime simplement la chaîne " test." Cependant, vous rencontrez un comportement inattendu dans lequel la goroutine ne semble pas s'exécuter.
Le problème vient de la nature de l'exécution de la goroutine. Contrairement aux threads traditionnels, les goroutines sont coopératives, ce qui signifie que le runtime Go gère leur planification. Dans votre cas, la fonction principale revient avant que la goroutine ait une chance de s'exécuter.
Instructions Go et Goroutines
L'instruction go appelle une fonction de manière asynchrone. Lorsqu'elle est utilisée dans la fonction principale, comme dans votre exemple, l'exécution du programme n'attend pas la fin de la fonction invoquée. En effet, la fonction principale n'est pas impliquée dans la gestion de la goroutine.
Pour garantir que la goroutine s'exécute, vous devez fournir un moyen pour que le programme attende. Ceci peut être réalisé en utilisant :
Exemple avec une attente basée sur le temps :
Voici une version modifiée de votre programme qui inclut une attente basée sur le temps :
<code class="go">package main import ( "fmt" "time" ) func test() { fmt.Println("test") } func main() { go test() time.Sleep(10 * time.Second) }</code>
Dans cet exemple, le temps. La fonction Sleep met la fonction principale en pause pendant 10 secondes, ce qui donne à la goroutine suffisamment de temps pour s'exécuter.
En comprenant le comportement des goroutines et en incorporant des techniques appropriées pour garantir leur exécution, vous pouvez utiliser efficacement les goroutines dans vos programmes Golang.
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!