Maison > développement back-end > Golang > Comment puis-je empêcher un programme Go de longue durée de se terminer prématurément ?

Comment puis-je empêcher un programme Go de longue durée de se terminer prématurément ?

Patricia Arquette
Libérer: 2024-12-16 13:58:16
original
448 Les gens l'ont consulté

How Can I Keep a Long-Running Go Program from Terminating Prematurely?

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 :

  1. 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)
        }
    }
    Copier après la connexion

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