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 ", num) } func addNum() { for i := 0; i < max; i++ { num++ } wg.Done() }
这道题考察的是对并发的理解,主要是并发多协程操作一个共享变量的问题
注:需要多运行几次才能看到比较明显的结果。(可以弄个for循环执行100遍看看输出的效果)