Ich habe eine Frage über Nebenläufigkeit in GoLang. Hier ist ein Beispielcode in golangNebenläufigkeit in Golang
package main
import(
"fmt"
"time"
)
var m int
func add(i int){
m++
}
func main() {
m = 0
for i:=0;i<100;i++{
go add(i)
}
time.Sleep(time.Millisecond * 1000)
fmt.Println(m)
}
Wenn ich es ausführen Ich habe immer das gleiche Ergebnis 100, auch wenn ich es mehrmals ausführen.
Wenn ich den gleichen Code in C (ohne Mutex), habe ich manchmal andere Ergebnisse.
Und meine Frage, würde ich gerne wissen, ob GoLang implizit den Zugriff auf eine gemeinsame Variable mit einem internen Mechanismus verwaltet?
Vielen Dank.
Danke, jetzt verstehe ich, warum :) – dz00dz