Maison > développement back-end > Golang > le corps du texte

Comment quitter le processus dans Golang ?

coldplay.xixi
Libérer: 2020-07-18 15:10:10
original
7023 Les gens l'ont consulté

La méthode permettant à Golang de quitter le processus : définissez d'abord une [chan struct{}] ; puis appelez la fonction [close()] pour fermer le canal et transmettre le signal de sortie à chaque goroutine ; <-chan ], quittez simplement la boucle de rupture.

Comment quitter le processus dans Golang ?

Méthode de Golang pour quitter le processus :

Ce qui suit est une solution permettant à la fonction principale de quitter func, environnement de production Ici, la fonction de sortie peut effectuer de nombreuses opérations de fermeture, et les objets de fermeture sont probablement de nombreux goroutines avec des boucles infinies intégrées. Comment transmettre le signal de sortie à chaque goroutine ?

Mon approche habituelle consiste à définir un chan struct{}  Lorsque la fonction close() est appelée pour fermer le canal, toutes les opérations <-chan seront effectuées en même temps, réalisant ainsi que le signal de sortie est passé. à chaque goroutine. Chaque goroutine peut être interrogée via select (par défaut sous Linux, select appelle epoll pour l'interrogation). Lorsque <-chan est obtenu, interrompez la boucle

package main
import(
        "fmt"
        "os"
        "os/signal"
        "syscall"
)
func main(){
        signalChan := make(chan os.Signal,1) //创建一个信号量的chan,缓存为1,(0,1)意义不大
        signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)//让进城收集信号量。
        fmt.Println("i am workding!")
        <-signalChan         
        ExitFunc()
}
func ExitFunc(){
        fmt.Println("i am exiting!")
}
Copier après la connexion

Recommandations d'apprentissage associées : . Aller au tutoriel de langue

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!