Maison > développement back-end > Golang > Comment puis-je effectuer des actions de nettoyage à la fin d'un programme Go ?

Comment puis-je effectuer des actions de nettoyage à la fin d'un programme Go ?

Susan Sarandon
Libérer: 2024-12-20 04:21:12
original
393 Les gens l'ont consulté

How Can I Perform Cleanup Actions When a Go Program Exits?

Effectuer des actions de fin d'exécution dans Go

Dans Go, vous pouvez exécuter des actions spécifiques lorsque votre programme se termine, notamment en réponse à une interruption déclenchée par l'utilisateur (Ctrl-C). Comprendre les signaux Unix peut être utile dans ces scénarios.

Capter le signal d'interruption

Pour capter le signal d'interruption (SIGINT), qui est déclenché lorsqu'un utilisateur appuie sur Ctrl- C, vous pouvez utiliser les packages os.Signal et signal.Notify comme ceci :

package main

import (
    "fmt"
    "os"
    "os/signal"
)

func main() {
    fmt.Println("Program started!")

    // Create a channel for receiving signals
    sigchan := make(chan os.Signal, 1)

    // Notify the channel on receipt of the interrupt signal
    signal.Notify(sigchan, os.Interrupt)

    // Start a separate goroutine to handle the interrupt signal
    go func() {
        <-sigchan
        fmt.Println("Program interrupted!")
        fmt.Println("Performing cleanup actions...")

        // Perform end-of-execution actions

        // Exit the program cleanly
        os.Exit(0)
    }()

    // Start main program tasks
}
Copier après la connexion

Dans cet exemple, une goroutine est lancé pour gérer le signal d'interruption. Lorsque Ctrl-C est enfoncé, il imprime un message, effectue toutes les actions de nettoyage nécessaires (par exemple, vider les tampons, fermer les connexions) et appelle os.Exit(0) pour quitter le programme en douceur.

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