Avatar ·

Wie stoppt man eine Goroutine in Go korrekt? Probleme beim Beenden von Hintergrundaufgaben

Hallo zusammen! Ich bin ein Go-Anfänger und habe ein Problem mit der Verwaltung von Goroutinen. Ich schreibe einen kleinen Dienst, der regelmäßig den Status einer externen API überprüft und einen lokalen Cache aktualisiert. Dafür starte ich eine Hintergrund-Goroutine mit einer Endlosschleife und time.Sleep. Das Problem ist, dass ich die Goroutine nicht korrekt stoppen kann, wenn das Programm beendet wird (z.B. mit Strg+C) oder wenn ich die Goroutine neu starten muss. Wenn ich einfach main beende, hängt die Goroutine weiter oder es kommt zu einer Panic. Ich habe versucht, ein globales Flag `var running bool` zu verwenden und es in der Schleife zu prüfen, aber das wirkt nicht sofort, und manchmal blockiert die Goroutine bei Ein-/Ausgabeoperationen. Hier ist ein Beispiel meines Codes: ```go package main import ( "fmt" "time" ) func worker() { for { fmt.Print ```