golang 利用信号监听保持主线程不退出

搞了个小脚本,最初用了死循环保持主线程不退出,后来发现CPU占用很高.最后用了如下办法

直接上代码吧.

package main

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

// 监听指定信号
func main() {
//合建chan
c := make(chan os.Signal)
//监听指定信号 ctrl+c kill
signal.Notify(c, os.Interrupt, os.Kill, syscall.SIGUSR1, syscall.SIGUSR2)
//阻塞直到有信号传入
fmt.Println("启动")
//阻塞直至有信号传入
s := <-c
fmt.Println("退出信号", s)
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注