Junior — Middle
Wie wird die Abfolge der Funktionsaufrufe während der Programmausführung verwaltet?
sobes.tech KI
Antwort von AI
In Go wird die Reihenfolge der Funktionsaufrufe mit einem Aufrufstapel verwaltet. Wenn eine Funktion aufgerufen wird, wird sie auf den Stapel gelegt, und die Ausführung wechselt zu ihr. Nach Abschluss gibt die Funktion die Kontrolle an die aufrufende Funktion zurück, die sich weiter unten im Stapel befindet. Die Reihenfolge der Aufrufe kann auch mit Goroutines und Kanälen für parallele und asynchrone Ausführung gesteuert werden.
Beispiel für sequenzielle Funktionsaufrufe:
package main
import "fmt"
func first() {
fmt.Println("Erste Funktion")
}
func second() {
fmt.Println("Zweite Funktion")
}
func main() {
first()
second()
}
Für asynchrone Ausführung werden Goroutines verwendet:
go first()
go second()
Und Synchronisation mittels Kanälen oder sync.WaitGroup.