golang學習筆記20 一道考察對並發多協程操作一個共享變量的面試題
下面這個程序運行的能num結果是什么?
package main
import (
"fmt"
"sync"
)
var num int64 = 0
var max = 10000
var wg sync.WaitGroup
func main() {
wg.Add(2)
go addNum()
go addNum()
wg.Wait()
fmt.Printf("num=%d \n", num)
}
func addNum() {
for i := 0; i < max; i++ {
num++
}
wg.Done()
}
這道題考察的是對並發的理解,主要是並發多協程操作一個共享變量的問題
注:需要多運行幾次才能看到比較明顯的結果。(可以弄個for循環執行100遍看看輸出的效果)
