去哪儿面试题 (Golang实现)多线程顺序输出1-75

FredricZhu ·
你看下面这代码,满足了题目中的要求,也做到了简单易懂。可是还是对题目用意一脸懵逼 ```go func main() { var wg sync.WaitGroup for i := 1; i < 76; i++ { wg.Add(1) go printN(&wg, i) wg.Wait() } } func printN(wg *sync.WaitGroup, i int) { fmt.Println(i) wg.Done() } ```
#13
更多评论
``` var a struct { Mu sync.RWMutex Count int } var wg sync.WaitGroup func main() { wg = sync.WaitGroup{} wg.Add(75) for i:=1; i<=75; i++ { go Add() } wg.Wait() } func Add() { defer wg.Done() a.Mu.Lock() a.Count++ fmt.Println(a.Count) a.Mu.Unlock() } ```
#1
输出结果不稳定,也就是说结果不对
#2