1. 首页
  2. 主题
  3. Go问与答

关于信号退出

Leviathangk · · 3100 次点击
请教各位大佬,go 的信号,为什么像是拦截啊 一但监控到指定信号,处理完之后,后续的代码还是会执行 比如这里我想监听到 ctrl+c 之后释放资源,程序结束,但是最后还是会输出 ps:不要说 os.Exit() 因为这只是一个模块,可以启动多个,如果直接退出,那么其余的资源可能来不及释放 ![image.png](https://static.golangjob.cn/230410/9172b5469012198fc318415ed761c297.png) 接收到 ctrl+c 之后仍然执行了 end 输出 ![image.png](https://static.golangjob.cn/230410/546c88720ec6de1b92f5d35d177f905e.png)
释放资源、程序退出就是你自己要实现的sighandler,别人怎么知道你要释放什么资源、怎么释放? 这里其实可以玩出花的,譬如有些大佬就喜欢double SIGINT来实现graceful shutdown。
#4
更多评论
signalChannel不能时0-cap,会丢失信号。
#1

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中