Ich möchte ein neues Netzwerk-Server-Projekt in einer Sprache starten, die Nebenläufigkeit durch Fasern aka Koroutinen aka Benutzermodus-Threads unterstützt. Das Bestimmen, was genau meine Optionen sind, war außerordentlich schwierig, da der Begriff "Coroutine" ziemlich locker verwendet wird, um eine Vielzahl von Dingen zu bedeuten, und "Faser" wird fast ausschließlich in Bezug auf die Win32-API verwendet.
Für die Zwecke dieser Frage, Koroutinen / Fasern:
Was sind meine Sprachoptionen? Ich weiß, Ruby 1.9 und Perl (Coro) haben beide Unterstützung, was noch? Alles mit einem ausgereiften GC und dynamischen Methodenaufruf ist ausreichend.
Tcl 8.6 , derzeit in der Beta-Version, wird Coroutinen unterstützen. Für weitere Informationen siehe die Tcl Wiki Coroutinenseite
Stackless Python ist eine weitere Option, die Ihren Anforderungen entspricht. Wenn Python, Ruby und Perl für Ihre Zwecke ungeeignet sind (obwohl Sie alle Ihre Anforderungen erfüllen), haben Sie vermutlich andere unausgesprochene Anforderungen oder Vorlieben - kümmern Sie sich darum, sie zu formulieren? -)
Scheme hat call-with-current-continuation
, was ein Baustein ist, auf dem alle Arten von Flusskontrolle aufgebaut werden können. Es kann definitiv die zwei Anwendungen unterstützen, die Sie erwähnt haben.
Es gibt viele robuste, weit verbreitete Implementierungen von Schemes wie PLT Scheme und Chicken Scheme .
Tags und Links network-programming fiber coroutine