如何理解go语言的内存模型?

dexter-qjq · · 2144 次点击
不应该出问题,你加读写锁,不会有问题的。golang语言本身就赋予了初始化值为false,如果还要自己去初始化那就不是go了。我跑了10000遍,没有问题,可以忽略。 ``` for i := 0; i < 10000; i++ { var a string var done bool go func() { a = fmt.Sprintf("%d_%s", i, "hello") done = true }() for !done { } fmt.Println("第", i, "次,a:", a) } ```
#10
更多评论
好像不关内存什么事吧,是你基础没有学好 首先 done 的初始化应该为 false 就是 0,一般情况下 所有的语言 bool 类型 初始化都为 false 然后 for 循环,!done ,差不多相当于 只要是 done 为false 就会一直循环下去,直到 done 变为 true。 也就是 不关 你的 setup 什么时候执行,一旦执行后,done 变为 true,for 循环结束跳出,之后 print
#1
你上面那个说明在哪里看到的?这里难道不是应该注意读写并发么
#2