请教各位大佬,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
更多评论