背景 最近老代码中遇到的一个问题,表现为: goroutine数量在高峰期上涨,上涨后平峰期将不下来.也就是goroutine泄露 使用pprof看,进程堵塞在chan chan的使用经验 在使用chan时,需要注意堵塞问题 chan做为参数传递时,每个接收方都需要注意chan可能的堵塞(否则chan可能无法自动回收,导致gorutine无法结束) chan对应剩余buff为0时,则堵塞到有buffer, 或者超时 chan应该总是和超时机制配合使用 示例代码 package main impo