Sobes.tech
Middle+

Was sind Asynchronität, Parallelität und Gleichzeitigkeit im Kontext von Go?

sobes.tech KI

Antwort von AI

Im Kontext von Go:

  • Asynchronität — Ausführung von Operationen, ohne den Hauptthread zu blockieren, meist durch Goroutines und Kanäle. Ermöglicht das Starten von Aufgaben, die unabhängig ausgeführt werden können, ohne auf deren Abschluss zu warten.

  • Parallelität — gleichzeitige Ausführung mehrerer Aufgaben auf verschiedenen CPU-Kernen. In Go wird dies durch den Scheduler der Goroutines erreicht, der sie auf System-Threads verteilt.

  • Nebenläufigkeit — Fähigkeit eines Programms, mehrere Aufgaben zu verwalten, die gleichzeitig oder nacheinander ausgeführt werden können, wobei ein korrekter Zugriff auf gemeinsame Ressourcen gewährleistet wird.

Beispiel einer Goroutine:

func worker(id int) {
    fmt.Printf("Arbeiter %d gestartet\n", id)
    // Arbeit
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // asynchroner Start
    }
    time.Sleep(time.Second) // Warten auf Abschluss
}