Golang应用程序被卡住,但尝试终止时却因某种原因被卡住

时间:2019-04-18 06:55:15

标签: go

我已经使用标准的go库编写了一个golang Web应用程序。我有一个启动goroutine的API。

在goroutine中,我遍历有限的数据列表(约5000个单位),并处理每个条目。在处理每个条目时,我使用fmt.Println()打印到终端,并使用time.Sleep(500 * time.Millisecond)休眠。每次处理大约需要500毫秒。

我使用go build && ./app之类的命令在Windows(Linux的Windows子系统)中的Ubuntu上启动go程序。

当我通过API调用启动goroutine时,可以在终端中看到打印内容。一段时间后,我注意到打印消息停止了,没有任何处理。我使用SELECT COUNT(*)...检查数据库,因为每次处理都要记录一个数据库条目,并且计数没有变化。当我通过在终端中按 CTRL-C 终止程序时,该程序不会终止。取而代之的是,处理过程恢复了,我又开始在终端上看到打印内容。

有人知道为什么会这样吗?或者如何开始调试此问题?预先感谢。

0 个答案:

没有答案