Junior — Middle
Welche Arten der Implementierung paralleler Aufgaben kennen Sie?
sobes.tech KI
Antwort von AI
In Go können parallele Aufgaben auf verschiedene Weisen implementiert werden:
-
Goroutines — leichte Threads, die mit dem Schlüsselwort
gogestartet werden. Sie ermöglichen die parallele Ausführung von Funktionen. -
Kanäle — werden für die Kommunikation und Synchronisation zwischen Goroutines verwendet und erlauben den sicheren Datentransfer.
-
Worker-Pools — eine Gruppe von Goroutines, die Aufgaben aus einer Warteschlange aufnehmen und verarbeiten, um die Anzahl der gleichzeitig laufenden Goroutines zu steuern.
-
sync.WaitGroup — um auf das Ende einer Gruppe von Goroutines zu warten.
Beispiel zum Starten einer Goroutine und zum Senden von Daten über einen Kanal:
ch := make(chan int)
// Goroutine starten
go func() {
ch <- 42 // Wert in den Kanal senden
}()
// Wert aus dem Kanal empfangen
val := <-ch
fmt.Println(val)