Senior
Wie man die Ausführung von zwei worker() parallel statt sequenziell macht (6 Sekunden → 3 Sekunden)?
sobes.tech KI
Antwort von AI
In Go können Sie Goroutines verwenden, um Funktionen parallel auszuführen. Wenn Sie zwei Funktionen worker() haben, die derzeit sequentiell ausgeführt werden und insgesamt 6 Sekunden dauern, werden sie durch das Starten in separaten Goroutines parallel ausgeführt, und die Gesamtzeit wird sich ungefähr auf 3 Sekunden reduzieren.
Beispiel:
func() {
worker()
}()
func() {
worker()
}()
// Um auf den Abschluss beider Goroutines zu warten, verwenden Sie sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Auf diese Weise ermöglicht das Starten von Funktionen in Goroutines und die Synchronisation mit WaitGroup deren parallele Ausführung.