Sobes.tech
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 go gestartet 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)