如何退出协程
小于 1 分钟
如何退出协程
超时场景
- 模拟一个Goroutine泄漏的场景
父协程创建chan(无缓冲且只有父协程有接收的位置)且在子协程运行完成之前退出
子协程(阻塞在 chan <- true)(因为唯一接收的地方父协程关闭了)
当父协程close了,子协程继续 chan <- true 也会出错
- defer 语句可能阻塞 goroutine 退出的情况有哪些
其他场景
- 例举一个协程泄漏的场景
巧妙地使用 close chan 以及 <- chan 第二个参数解决协程泄漏
通道关闭原则
让一个通道唯一的发送者关闭此通道
可以避免 close chan 以后还有发送者执行 chan <- 而导致 panic