本人是 golang 小白, 写一段代码, 通过go coroutine同时启动生产者和消费者,然后生产者没产生任何数据,消费者也没接收到任何数据,然后主线程就退出了
var waiter sync.WaitGroup
func producer(data chan interface{}){
    waiter.Add(1)
   defer func(){
    waiter.Done()
     close(data)
}()
// start sending
    for i:=0 ; i > 100; i++{
        data <- i
}
}
func consumer(data chan interface{}){
    waiter.Add(1)
   defer waiter.Done()
  end:
    for {
       select {
      case item, Ok:= <- data:
          if !Ok{
              break end:
         }else {
              // do something
         }
default:
    continue
}
}
}
func main(){
defer waiter.Wait()
pipe := make(chan interface{})
go producer(pipe)
go consumer(pipe)
}
希望各位高手能指出我的错误 😱
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.