小编ale*_*smn的帖子

GoRoutines,具有WaitGroup意外输出的频道

我看了很久以前写的一些代码,当go1.3发布时(我可能错了).代码在这里

下面的代码用于按预期工作,但是现在我已经更新go到当前的主版本(go version devel + bd1efd5 Fri Jul 31 16:11:21 2015 +0000 darwin/amd64),最后的输出消息c <- "FUNC 1 DONE"没有打印,代码按原样运行play.golang.org.我做错了什么,或者这是一个错误?

package main

import ("fmt";"sync";"time")

func test(c chan string, wg *sync.WaitGroup) {
  defer wg.Done()
  fmt.Println("EXEC FUNC 1")
  time.Sleep(3 * time.Second)
  c <- "FUNC 1 DONE"
}

func test1(c chan string, wg *sync.WaitGroup) {
  defer wg.Done()
  fmt.Println("EXEC FUNC 2")
  time.Sleep(2 * time.Second)
  c <- "FUNC 2 DONE"
}

func main() {
  ch := make(chan string)

  var wg sync.WaitGroup …
Run Code Online (Sandbox Code Playgroud)

go

3
推荐指数
1
解决办法
180
查看次数

标签 统计

go ×1