由于某种原因, with 行srv.ListenAndServe()似乎没有被执行,而优雅关闭仍然像以前一样在 go 例程中运行。对我来说,代码看起来相同,只是重构为单独的文件并添加了 Start 函数。谁能解释一下为什么它在我给出中断信号之前不执行,导致http服务器立即启动和关闭?
1 回答

慕慕森
TA贡献1856条经验 获得超17个赞
包含的代码行srv.ListenAndServe()
是阻塞代码行,导致该行代码之后的日志不会发生。
在我之前的博客中演示的原始代码中,我将此日志放在带有srv.ListenAndServe()
. 因此,在该示例中,相同的代码按预期记录到控制台。
所以这毕竟是一个愚蠢的错误,你可以轻松地阅读多次。基本上交换了 2 行代码,我忘记了http.ListenAndServe()
.
要点:
http.ListenAndServe() 根据定义是阻塞的,因此不会运行该行之后的任何代码。
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消