Heim >Backend-Entwicklung >Golang >Warum erhöht meine Go for-Schleife die Schleifenvariable nicht, wenn sie gleichzeitig ausgeführt wird?
Go Memory Model
Die fehlende Synchronisierung im von Ihnen bereitgestellten Codeausschnitt ermöglicht es dem Compiler, die for-Schleife in eine Nr. zu optimieren -op, wodurch i unverändert bleibt.
Wenn Sie ein Synchronisationsereignis hinzufügen, z. B. eine Kanaloperation oder eine Mutex-Sperre, kann der Compiler diese Optimierung nicht mehr durchführen und die Goroutine erhöht i wie erwartet korrekt .
Das obige ist der detaillierte Inhalt vonWarum erhöht meine Go for-Schleife die Schleifenvariable nicht, wenn sie gleichzeitig ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!