Java中的轻量级线程?

2022-09-02 10:42:21

是否有任何JSR或其他严肃的举措在Java中创建轻量级线程?类似于Golang的goroutines或Erlang过程。

Java线程以其沉重的重量而闻名。使用类似于每个线程 512-1024 kb 的内容,因此这限制了最大线程数。Java线程之间的上下文切换也需要“很长时间”。

我听说过类星体“纤维”(http://docs.paralleluniverse.co/quasar/),它们是作为lib实现的轻量级线程。它们似乎有点难以使用,并且没有引起很多兴趣。

理想情况下,轻量级线程应该内置到 JVM 的核心中。


答案 1

在JVM上有一个关于轻量级线程(“纤维”)的建议,称为Project Loom:http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html

它处于早期阶段,尚未发布任何内容,但仍需要关注。


答案 2

我不知道有任何“轻量级”解决方案会进入Java社区进程。请参阅 jep 条目 ...那里没有关于类似事情的消息。几年前曾有人要求协;但那个东西看起来差不多“死了”。

我认为你今天能得到的最接近的东西更像是akka框架为你提供的东西。可以说,那些阿卡演员都以“轻量级线程”活动运行。