Christian Seiler: Was ist eine Callback-Funktion

Beitrag lesen

Hallo,

Unter einer Callback-Funktion versteht man aber gewöhnlich einen abgekoppelten Prozess, eine Funktion, die mit einer Aufgabe betraut, in einem eigenen Thread weiterläuft, ohne dadurch die aufrufende Stammfunktion zu behindern oder gar anzuhalten. Die Stammfunktion behält also die Programmkontrolle und spaltet einen Prozess ab, der die zugewiesene Aufgabe erledigen soll. Wenn dieser terminiert (also kurz vorher natürlich), ruft er seinerseits wieder seinen Auftraggeber auf und hält diesen an, um ihm das Ergebnis zu übergeben. Daher der Name "Call Back".

Nein! Nein! Nein! Das, was Du beschreibst, trägt definitiv NICHT den Namen Callback! Ich weiß wirklich nicht, wo Du das her hast, aber unter Callback versteht man immer nur das:

Man übergibt einen "Zeiger" (wie auch immer geartet) auf eine Funktion an eine andere Funktion. Diese nutzt diesen Zeiger, um die Funktion dahinter aufzurufen, wenn bestimmte Ereignisse auftreten.

Beispiel: Ein XML-Parser ruft eine Callback-Funktion auf, sobald bestimmte Parser-Ereignisse auftreten ("Element gefunden", "Attribut gefunden" oder sowas in der Art...)

In PHP sehen die "Zeiger" halt so aus, dass man lediglich den Namen der Funktion als String übergibt (bzw. für Objekte wird's ein Array mit 2 Elementen: Objekt und Methodenname), währen in anderen Sprachen wie C tatsächlich die Adresse im Speicher der Funktion selbst übergeben werden.

Andere Sprachen können aber solches "Multithreading". Ich meine, Java gehört dazu.

Multithreading != Callbacks! Ich weiß wirklich nicht, woher Du das hast...

Christian