Welche Sprachen haben noch "leichtgewichtige Threads"?
Einige mir bekannte Sprachen haben eine Art "leichtgewichtige Threads", also ein Konstrukt für Nebenläufigkeit das man in großer Zahl (tausende oder Millionen) verwenden kann, ohne dass dafür gleich viele Betriebssystem-Threads verwendet werden. Vorteil ist, dass man gewisse Aufgaben viel einfacher synchron/blockierend erledigen kann, ohne sich mit mühsamen Callbacks oder async/await herumschlagen zu müssen, die den Code komplex machen und Debugging mühsam.
- Go hat Goroutines
- Erlang hat Processes
- Java hat Virtual Threads
Fallen euch noch weitere Sprachen ein, die sowas mitbringen? (Klassische Coroutinen nehme ich hier ausdrücklich aus, weil das Scheduling dabei sozusagen "händisch" funktioniert, die fühlen sich also nicht wie Threads an.)
1 Antwort
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Du kannst dir Programmiersprachen anschauen, die auf BEAM aufbauen (also die gleiche Funktionalität wie Erlang nutzen). Da wären beispielsweise Elixir, LFE oder Joxa.
Java's Virtual Threads wiederum kannst du ebenso in Clojure oder Groovy nutzen. In Scala gibt es dafür Forks.
In mehreren Programmiersprachen (z.B. Crystal, PHP, Ruby, verschiedenen Lisp-Dialekten) gibt es Fibers.