社区
其他技术讨论专区
帖子详情
手动停止,defer不执行
weixin_38049686
2019-09-20 10:19:21
我想在停止服务前注销eureka注册信息,然后发现在goland中手动中断程序,defer并不会执行
我想问一下这是golang本身设计问题吗?为什么java手动中断依然可以执行后续处理方法
...全文
117
2
打赏
收藏
手动停止,defer不执行
我想在停止服务前注销eureka注册信息,然后发现在goland中手动中断程序,defer并不会执行 我想问一下这是golang本身设计问题吗?为什么java手动中断依然可以执行后续处理方法
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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语言面试八股文大全
### Go语言面试八股文大全...
DEF
语句的具体内容缺失,但通常来说,`
def
er
` 的
执行
顺序遵循“先进后出”原则,即最后一个 `
def
er
` 调用最先
执行
,而第一个 `
def
er
` 调用最后
执行
。这种机制常用于确保资源的正确释放。
RxJava.PDF
- **功能**:通过调用Subscription的`unsubscribe`方法,可以
停止
进一步接收Obs
er
vable发送的数据。 ##### 4. Schedul
er
- **定义**:Schedul
er
是RxJava中用于控制任务
执行
时间的关键组件,它使得程序能够在不同的...
Rx 中文文档
- **
Def
er
**:延迟创建一个Obs
er
vable,直到有订阅者时才
执行
。 - **Empty/Nev
er
/Throw**:分别创建一个不发射任何值、永远不会完成和立即抛出异常的Obs
er
vable。 - **From**:从集合或数组创建Obs
er
vable。 - **...
golang的
def
er
的理解-
def
er
的函数一定会
执行
吗?
go语言中
def
er
可以完成延迟功能,当前函数
执行
完成后再
执行
def
er
的代码块。通过
def
er
,我们可以在代码中优雅的关闭/清理代码中所使用的变量。
Go-知识
def
er
def
er
语句采用后进先出的设计,类似于栈的方式,函数
执行
时,每遇到一个
def
er
都会把一个函数压入栈中,函数返回前在将函数从栈中取出
执行
,最早被压入栈中的函数最晚被
执行
。不仅函数正常返回会
执行
被
def
er
延迟的...
其他技术讨论专区
474
社区成员
791,113
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章