首页 > 解决方案 > 缓冲通道中从未使用过的值会发生什么情况

问题描述

我有以下代码

func f() {
  ...
  chan := make(chan error, 1)
  go func() {
    ...
    chan <- err
  }()

  err := other_method()
  if err != nil {
    log(err)
    return
  }

  err <- chan
  if err != nil {
    log(err)
  }
}

如果永远不会读取缓冲通道中写入的值,因为函数在读取它之前就退出了,会发生什么情况?这是我需要关心的资源泄漏吗?

标签: gochannel

解决方案


推荐阅读