Ich suche nach neuen Arbeiten, die Fortsetzungen in Java präsentieren. Ich bin auf die gleiche Frage hier gestoßen, aber sie reicht ein oder zwei Jahre zurück.
Es gibt einige Arbeiten wie JavaFlow von Apache, RIFE Continuations (die ich aus irgendeinem Grund jetzt nicht herunterladen kann). Außerdem gibt es einen Blogbeitrag Ich erwähne die Unterstützung in JDK, aber es scheint, dass sich die Unterstützung auf Java 8 erstreckt. Ich denke auch, dass Fortsetzungen auch in recent
Ich suche nach Implementierungen in Java, die das Fortsetzungskonzept präsentieren. Und ich suche nicht nach Werken, die Continuation-Passing-Style (CSP) präsentieren.
Ich wäre dankbar für jede andere Arbeit, die Sie vielleicht kennen.
Ich fand diesen Artikel interessant:
Wenn Sie die ganze Sache lesen, werden Sie einen guten Eindruck von den Kompromissen bekommen, die mit der Implementierung von erstklassigen Fortsetzungen über die Bytecode-Manipulation ohne Hilfe der VM verbunden sind.
Im Gegensatz dazu versucht das MLVM-Projekt , sie nativ in der VM zu unterstützen. Es gibt auch Avian , das sowohl Continuations und Tail Call Optimierung.
Es ist nicht klar, warum JavaFlow Ihre Anforderungen nicht erfüllen würde. JYield ist eine andere Bibliothek und ich würde mit einem Apache-Projekt beginnen, bevor ich ein Projekt wie JYield mit weniger Unterstützung ausprobieren würde.
Wir haben vor kurzem erstklassige Fortsetzungen zu Kelim hinzugefügt und haben eine 2.0 Pre-Release.
Hier ist ein Ausschnitt, der ein XorShift berechnet (Anzahl mal):
%Vor%Es wird auch eine Funktion auf höherer Ebene bereitgestellt (Task genannt), die automatisch geplant wird, z. B. weil ein Netzwerkpaket eintrifft oder ein Dateilesevorgang abgeschlossen ist
Checkout kürzlich veröffentlichte experimentelle Unterstützung von Korotinen in Kotlin
Zum Beispiel Code-Snippet unten zeigt, dass Korotinen in Koltin eigentlich leichte Fäden sind. Das Erstellen von 100.000 normalen Threads würde höchstwahrscheinlich einen schwerwiegenden Fehler wie OutOfMemoryError verursachen, aber dieser Code funktioniert gut:
%Vor%Natürlich gibt es hier keine große Magie und Kotlin wird zur Kompilierzeit etwas Code für Sie generieren, der all diese 100000 Aufgaben in einem ForkJoinPool ausführen wird.
Es gibt viele weitere coole Beispiele in der Dokumentation.
Tags und Links java continuations