2009-07-30 3 views
2

Ich bin auf der Suche nach einer Antwort, die einen "Fortsetzungs" -Mechanismus in einem Webserver gegenüber einer Programmiersprache beschreibt.Was sind "Jetty 6 Continuations" und wie vergleichen sie sich mit den Fortsetzungen in Programmiersprachen?

Mein Verständnis ist, dass Fortsetzungen verwenden, ist es trivial, eine "Ziffern von Pi" Produzent mit einem "Ziffern von Pi" Verbraucher kommunizieren, ohne explizite Threading.

Ich habe sehr gute Dinge über Jetty Fortsetzungen gehört. Ich bin gespannt was andere denken.

Ich habe vielleicht schon meine Antwort gefunden, aber ich stelle die Frage hier trotzdem - für die Aufzeichnung.

Antwort

2

Wie vergleichen sie sich mit den Fortsetzungen in Programmiersprachen gefunden?

Sie haben nichts gemeinsam mit dem Namen. Es ist lediglich ein Mechanismus zum Freigeben des aktuellen Threads, indem Servlet eine API zum Speichern und Wiederherstellen des Status bereitgestellt wird. Dies wird jedoch eher manuell verwaltet als im Gegensatz zu echten Fortsetzungen, bei denen der Status automatisch aus dem aktuellen Kontext abgeleitet wird. Das prototypische Beispiel für Fälle, in denen dies sinnvoll ist, sind geschichtete (zusammengesetzte) Webdienste, bei denen ein Dienst viele Anforderungen an andere Dienste stellen muss, und während diese Anforderungen gestellt werden, wird der aktuelle Thread freigegeben. Nach Abschluss der Anforderungen (die asynchron für einige andere Threads ausgeführt werden können) wird die Methode resume des Servlets aufgerufen, die dann die Antwort aus den Ergebnissen der Anforderungen zusammenstellt.

1

dieser page Nach:

Fortsetzungen wird von Standard Servlet-3.0 suspendable Anfragen ersetzt werden, sobald die Spezifikation abgeschlossen ist. Frühe Versionen von Jetty-7 sind jetzt zur Verfügung, die Umsetzung der vorgeschlagenen Standard Suspend/Resume-API

Ich habe Jetty noch nicht benutzt, aber es scheint, dass mit Fortsetzungen der Server einen Thread nicht zu halten für jeden erforderlich ist Client, wo normalerweise, wenn der Server "hält" (ich glaube Blockieren) beim Senden einer Antwort an einen Client, der kontinuierlich mit AJAX fragt, würde es einen Thread für jeden Client benötigen, was ein Skalierbarkeitsproblem wäre.

Verwandte Themen