Meilleures pratiques pour maintenir en vie un programme Go de longue durée
Exécuter un programme Go de longue durée sans qu'il ne se termine prématurément peut être crucial pour certaines applications. Lorsque la fonction principale se termine, le programme aussi, laissant toutes les goroutines en cours d'exécution bloquées. Comment vous assurer que votre programme reste actif quand il est censé le faire ?
Une tactique courante pour empêcher la goroutine principale de se fermer consiste à utiliser un simple appel à fmt.Scanln(). Cependant, cette option est problématique si vous ne prévoyez aucune interaction avec la console.
Considérez plutôt les recommandations suivantes :
Bloquer pour toujours :
Bloquez la goroutine principale en utilisant select {} pour une attente indéfinie. Cette approche garantit que le programme reste actif tant que l'instruction select n'est pas interrompue.
package main import ( "fmt" "time" ) func main() { go forever() select {} // block forever } func forever() { for { fmt.Printf("%v+\n", time.Now()) time.Sleep(time.Second) } }
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!