Mehrfadenbetrieb mit Ajax
Janko
- programmiertechnik
Hallo,
Ich wollte mal wissen, ob es in Ajax soetwas wie Mehrfadenbetrieb (engl. multithreading) gibt?
Grüße
Janko
hallo Janko,
Ich wollte mal wissen, ob es in Ajax soetwas wie Mehrfadenbetrieb (engl. multithreading) gibt?
Gegenfrage: was möchtest du unter "multithreading" verstehen, und wie kommst du darauf, daß AJAX so etwas realisieren können sollte?
Grüße aus Berlin
Christoph S.
Ich habe nur so überlegt, vielleicht ist es aber eh quatsch.
Janko
Lieber Janko,
Ich habe nur so überlegt, vielleicht ist es aber eh quatsch.
ja, ist es.
Der Browser kann mehrere Events nebeneinander her über Javascript-Funktionen abarbeiten. Da hast Du dann Multitasking. Ob das mit Hyperthreading abgearbeitet wird, hängt von der Programmierung des Browsers und des ihn umgebenden Betriebssystems ab.
Aber Hyperthreading würde ja bedeuten, dass Deine Funktionen sich jeweils einen Teil der zu leistenden Aufgabe nach bestimmten Kriterien (z.B. Leistung/Auslastung) teilen. Wie möchtest Du das denn bitte programmieren? Deine Scripte werden doch linear abgearbeitet! Darauf kannst Du ja überhaupt keinen Einfluss nehmen...
Man korrigiere mich bitte, wenn ich da etwas durcheinander gebracht haben sollte!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hallo Felix,
Aber Hyperthreading würde ja bedeuten
... daß es etwas anderes ist als multithreading.
Ich habe erstmal nach den Beweggründen fragen und nicht gleich darauf hinweisen wollen, daß Javascript (auch in den Teilen, die serverseitig laufen können oder wenigstens eine Server-Antwort provozieren) ganz einfach nicht multithreadingfähig ist. Siehe Svens richtiger Hinweis weiter oben.
Grüße aus Berlin
Christoph S.
Hallo Felix,
Hyperthreading ist eine Prozessortechnologie. Dabei stellt ein Prozessor gegenüber dem Betriebssystem mehre Prozessoren dar, was die bessere Auslastung von verschiedenen Prozessorteilen bedeutet, die sonst nicht gleichzeitig benutzt würden.
Multithreading bedeutet nur, dass mehrere Threads (also im Prinzip mehrere Programme mit geteiltem Speicher gleichzeitig ablaufen).
Multitasking ist das Verwalten mehrerer Prozesse/Threads.
Aber im Großen und Ganzen hast Du recht. Mit Javascript kann man da keinen Einfluss nehmen. Ein Browser könnte selbst Ereignisse einfach in eine Warteschlange stellen und streng sequenziell abarbeiten.
Was man allerdings machen kann, ist mehrere HTTP-Requests abzusetzen ohne direkt auf die Anwort zu warten. Dadurch kann man mehrere Aufgaben auf dem Server anstoßen und die Anwendung hängt auch nicht bis dieser antwortet.
Grüße
Daniel
Ich habe nur so überlegt, vielleicht ist es aber eh quatsch.
Diese Antwort ist nicht sonderlich hilfreich auf die Frage, was du unter Mehrfadenbetrieb verstehst.
Mit AJAX kannst du, wie der Name ja schon sagt, asynchron Daten laden, somit auch mehrere HTTP Resourcen gleichzeitig ansprechen. Das ist dann Quasi Mutlithreading. Allerdings nicht das was man unter dem Begriff üblicherweise versteht.
Struppi.
Moin!
Mit AJAX kannst du, wie der Name ja schon sagt, asynchron Daten laden, somit auch mehrere HTTP Resourcen gleichzeitig ansprechen. Das ist dann Quasi Mutlithreading. Allerdings nicht das was man unter dem Begriff üblicherweise versteht.
Naja, Multithreading ist auch das absolut nicht.
Man kann je Zeit exakt EINE AJAX-Ressource anfordern. Tatsächlich würden dann mehrere parallel geladen (allerdings auch nicht unbegrenzt viele parallel, üblicherweise benutzen Browser höchstens vier Connections zum Server), beim Fertigladen würde die dann aufzurufende Funktion allerdings auch wieder nacheinander abgearbeitet werden, d.h. der erste Request, der fertig ist, ruft seine Funktion auf, und erst wenn die Funktion fertig ist, können weitere Requests ihre Fertig-Funktion aufrufen - aber wieder nur ein Aufruf pro Zeit.
- Sven Rautenberg
Moin!
Ich wollte mal wissen, ob es in Ajax soetwas wie Mehrfadenbetrieb (engl. multithreading) gibt?
Multithreading scheitert schon daran, dass Javascript das nicht kann. Javascript arbeitet immer nur exakt EINEN Befehl zur Zeit ab, ein paralleles Abarbeiten unterschiedlicher Funktionen in einer Fensterinstanz ist nicht implementiert (und würde Javascript-Programmierung auch extrem viel komplizierter machen).
- Sven Rautenberg