社区
其他技术讨论专区
帖子详情
手动停止,defer不执行
weixin_38049686
2019-09-20 10:19:21
我想在停止服务前注销eureka注册信息,然后发现在goland中手动中断程序,defer并不会执行
我想问一下这是golang本身设计问题吗?为什么java手动中断依然可以执行后续处理方法
...全文
109
2
打赏
收藏
手动停止,defer不执行
我想在停止服务前注销eureka注册信息,然后发现在goland中手动中断程序,defer并不会执行 我想问一下这是golang本身设计问题吗?为什么java手动中断依然可以执行后续处理方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38051598
2019-09-20
打赏
举报
回复
因为手动执行`Ctrl + C`相当于给程序发了个`kill`信号,进程就直接退出了,可以参考下面代码优雅的退出go进程 ```go import ( "fmt" "os" "os/signal" ) func main() { c := make(chan os.Signal) signal.Notify(c) defer func() { fmt.Println("defer...") }() fmt.Println("main 1") //time.Sleep(time.Hour) <-c fmt.Println("main 2") } ```
weixin_38055275
2019-09-20
打赏
举报
回复
感谢,只是这样就不能在主线程监听http服务,必须另起线程,主线程就浪费了
Go
def
er
用法
主要介绍go语言中
def
er
在不同情况下的
执行
原理
golang的
def
er
的理解-
def
er
的函数一定会
执行
吗?
go语言中
def
er
可以完成延迟功能,当前函数
执行
完成后再
执行
def
er
的代码块。通过
def
er
,我们可以在代码中优雅的关闭/清理代码中所使用的变量。
def
er
、panic与recov
er
golang 里面
def
er
、panic、recov
er
语句的基本使用用法和使用场景,翻译自golang官方博客。
Go 函数的健壮性、panic异常处理、
def
er
机制
前者测量的是带有
def
er
的函数
执行
的性能,后者测量的是不带有
def
er
的函数的
执行
的性能。接着,我们继续用上面这个例子分析,在触发 panic 的 bar 函数中,对 panic 进行捕捉并恢复,我们直接来看恢复后,整个...
golang
def
er
、panic、recov
er
、
er
ror 11
def
er
后边会接一个函数,但该函数不会立刻被
执行
,而是等到包含它的程序返回时
def
er
函数才会被
执行
。 通常用于资源释放、打印日志、异常捕获等 */ func
def
er
R()
er
ror { f,
er
r := os.Open("filename") if
er
r != ...
其他技术讨论专区
433
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章