将WaitGroup传递给函数时,需要传递 指针 而不是值。否则,将使用WaitGroup的副本。
这是您的工作示例:
package mainimport ( "fmt" "sync")func push(c chan int,wg *sync.WaitGroup) { for i := 0; i < 5; i++ { c <- i } wg.Done()}func pull(c chan int,wg *sync.WaitGroup) { for i := 0; i < 5; i++ { result,ok := <- c fmt.Println(result,ok) } wg.Done()}func main() { var wg sync.WaitGroup wg.Add(2) c := make(chan int) go push(c,&wg) go pull(c,&wg) wg.Wait()}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)