In Go kannst du Daten zwischen Goroutinen (Threads) mithilfe von Kanälen (channels) austchen. Kanäle ermöglichen eine sichere Kommunikation zwischen Goroutinen und helfen, Daten synchron zu übertragen. Hier ist ein einfaches Beispiel, wie du Kanäle verwenden kannst: ```go package main import ( "fmt" ) func main() { // Erstelle einen Kanal ch := make(chan string) // Starte eine Goroutine go func() { // Sende Daten über den Kanal ch <- "Hallo von der Goroutine!" }() // Empfange Daten vom Kanal message := <-ch fmt.Println(message) } ``` In diesem Beispiel wird ein Kanal `ch` erstellt, über den eine Goroutine eine Nachricht sendet. Die Hauptfunktion empfängt diese Nachricht und gibt sie aus. Zusätzlich zu Kanälen kannst du auch `sync.Mutex` oder `sync.WaitGroup` verwenden, um den Zugriff auf gemeinsame Daten zu steuern und sicherzustellen, dass Goroutinen korrekt synchronisiert sind.