通道在什么情况下会引起资源泄漏
通道(channel)可能会引发 goroutine 泄漏。
泄漏的原因是 goroutine 操作 channel 后,处于发送或接收阻塞状态,而 channel 处于满或空的状态,一直得不到改变。同时,垃圾回收器也不会回收此类资源,进而导致 gouroutine 会一直处于等待队列中,“不见天日”。
另外,程序运行过程中,对于一个 channel,如果没有被任何 goroutine 引用,GC 会对其进行回收操作,不会引起内存泄漏。
上次更新: 5/9/2023, 10:58:32 AM