美文网首页
golang 防止主goroutine退出的方法

golang 防止主goroutine退出的方法

作者: 清晨的麦田 | 来源:发表于2019-06-26 19:53 被阅读0次

    直接上代码

    package main
    
    import (
        "runtime"
        "sync"
        "os"
        "os/signal"
        "syscall"
        "fmt"
    )
    
    func main() {
        runtime.GOMAXPROCS(runtime.NumCPU())
        wg := &sync.WaitGroup{}
        c := make(chan os.Signal, 1)
        signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT)
        go func() {
            sig := <-c
            _ = sig
            wg.Done()
        }()
        wg.Add(1)
        fmt.Println("执行任务~~~")
        wg.Wait()
        fmt.Printf("结束")
    }
    
    

    运行代码

    执行任务~~~
    

    点击停止按钮

    执行任务~~~
    结束
    Process finished with exit code 0
    
    

    相关文章

      网友评论

          本文标题:golang 防止主goroutine退出的方法

          本文链接:https://www.haomeiwen.com/subject/ulphcctx.html