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
}