golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题
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遍看看输出的效果)
大自然,飘然的风,QQ群: python技术交流群:453879716,人工智能深度学习群:251088643
golang技术交流群:316397059,vuejs技术交流群:458915921 囤币一族:621258209,有兴趣的可以加入
微信公众号: 心禅道(xinchandao)投资论道
golang技术交流群:316397059,vuejs技术交流群:458915921 囤币一族:621258209,有兴趣的可以加入
微信公众号: 心禅道(xinchandao)投资论道

浙公网安备 33010602011771号