Junior — Middle
Können Sie das Konzept von 'Once' in der Programmiersprache Go erklären und in welchen Fällen es angewendet wird?
sobes.tech KI
Antwort von AI
In der Programmiersprache Go ist sync.Once eine Struktur, die garantiert, dass eine bestimmte Funktion nur einmal ausgeführt wird, selbst wenn der Aufruf gleichzeitig aus mehreren Goroutines erfolgt. Dies ist nützlich für die Initialisierung von Ressourcen, die nur einmal erstellt werden sollen, z.B. das Herstellen einer Verbindung zu einer Datenbank oder das Laden einer Konfiguration.
Beispiel für die Verwendung:
var once sync.Once
func initialize() {
fmt.Println("Initialisierung abgeschlossen")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize)
}()
}
time.Sleep(time.Second) // Warten auf das Ende der Goroutines
}
In diesem Beispiel wird die Funktion initialize genau einmal aufgerufen, unabhängig von der Anzahl der Goroutines.